am 7cb0925e: Merge "Add extras to Connections/Calls. (1/3)" into mnc-dev
* commit '7cb0925e7e89a415a101f83e32d4f5e51f768ffd': Add extras to Connections/Calls. (1/3)
This commit is contained in:
@@ -30002,6 +30002,7 @@ package android.telecom {
|
|||||||
method public android.telecom.GatewayInfo getGatewayInfo();
|
method public android.telecom.GatewayInfo getGatewayInfo();
|
||||||
method public android.net.Uri getHandle();
|
method public android.net.Uri getHandle();
|
||||||
method public int getHandlePresentation();
|
method public int getHandlePresentation();
|
||||||
|
method public android.os.Bundle getIntentExtras();
|
||||||
method public android.telecom.StatusHints getStatusHints();
|
method public android.telecom.StatusHints getStatusHints();
|
||||||
method public int getVideoState();
|
method public int getVideoState();
|
||||||
method public static boolean hasProperty(int, int);
|
method public static boolean hasProperty(int, int);
|
||||||
@@ -30056,6 +30057,7 @@ package android.telecom {
|
|||||||
method public final long getConnectionTime();
|
method public final long getConnectionTime();
|
||||||
method public final java.util.List<android.telecom.Connection> getConnections();
|
method public final java.util.List<android.telecom.Connection> getConnections();
|
||||||
method public final android.telecom.DisconnectCause getDisconnectCause();
|
method public final android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
|
method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
|
||||||
method public final int getState();
|
method public final int getState();
|
||||||
method public final android.telecom.StatusHints getStatusHints();
|
method public final android.telecom.StatusHints getStatusHints();
|
||||||
@@ -30078,6 +30080,7 @@ package android.telecom {
|
|||||||
method public final void setConnectionCapabilities(int);
|
method public final void setConnectionCapabilities(int);
|
||||||
method public final void setConnectionTime(long);
|
method public final void setConnectionTime(long);
|
||||||
method public final void setDisconnected(android.telecom.DisconnectCause);
|
method public final void setDisconnected(android.telecom.DisconnectCause);
|
||||||
|
method public final void setExtras(android.os.Bundle);
|
||||||
method public final void setOnHold();
|
method public final void setOnHold();
|
||||||
method public final void setStatusHints(android.telecom.StatusHints);
|
method public final void setStatusHints(android.telecom.StatusHints);
|
||||||
method public final void setVideoProvider(android.telecom.Connection, android.telecom.Connection.VideoProvider);
|
method public final void setVideoProvider(android.telecom.Connection, android.telecom.Connection.VideoProvider);
|
||||||
@@ -30104,6 +30107,7 @@ package android.telecom {
|
|||||||
method public final java.util.List<android.telecom.Conferenceable> getConferenceables();
|
method public final java.util.List<android.telecom.Conferenceable> getConferenceables();
|
||||||
method public final int getConnectionCapabilities();
|
method public final int getConnectionCapabilities();
|
||||||
method public final android.telecom.DisconnectCause getDisconnectCause();
|
method public final android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public final int getState();
|
method public final int getState();
|
||||||
method public final android.telecom.StatusHints getStatusHints();
|
method public final android.telecom.StatusHints getStatusHints();
|
||||||
method public final android.telecom.Connection.VideoProvider getVideoProvider();
|
method public final android.telecom.Connection.VideoProvider getVideoProvider();
|
||||||
@@ -30131,6 +30135,7 @@ package android.telecom {
|
|||||||
method public final void setConnectionService(android.telecom.ConnectionService);
|
method public final void setConnectionService(android.telecom.ConnectionService);
|
||||||
method public final void setDialing();
|
method public final void setDialing();
|
||||||
method public final void setDisconnected(android.telecom.DisconnectCause);
|
method public final void setDisconnected(android.telecom.DisconnectCause);
|
||||||
|
method public final void setExtras(android.os.Bundle);
|
||||||
method public final void setInitialized();
|
method public final void setInitialized();
|
||||||
method public final void setInitializing();
|
method public final void setInitializing();
|
||||||
method public final void setNextPostDialChar(char);
|
method public final void setNextPostDialChar(char);
|
||||||
@@ -30371,6 +30376,7 @@ package android.telecom {
|
|||||||
method public final int getConnectionCapabilities();
|
method public final int getConnectionCapabilities();
|
||||||
method public final java.util.List<android.telecom.RemoteConnection> getConnections();
|
method public final java.util.List<android.telecom.RemoteConnection> getConnections();
|
||||||
method public android.telecom.DisconnectCause getDisconnectCause();
|
method public android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public final int getState();
|
method public final int getState();
|
||||||
method public void hold();
|
method public void hold();
|
||||||
method public void merge();
|
method public void merge();
|
||||||
@@ -30393,6 +30399,7 @@ package android.telecom {
|
|||||||
method public void onConnectionRemoved(android.telecom.RemoteConference, android.telecom.RemoteConnection);
|
method public void onConnectionRemoved(android.telecom.RemoteConference, android.telecom.RemoteConnection);
|
||||||
method public void onDestroyed(android.telecom.RemoteConference);
|
method public void onDestroyed(android.telecom.RemoteConference);
|
||||||
method public void onDisconnected(android.telecom.RemoteConference, android.telecom.DisconnectCause);
|
method public void onDisconnected(android.telecom.RemoteConference, android.telecom.DisconnectCause);
|
||||||
|
method public void onExtrasChanged(android.telecom.RemoteConference, android.os.Bundle);
|
||||||
method public void onStateChanged(android.telecom.RemoteConference, int, int);
|
method public void onStateChanged(android.telecom.RemoteConference, int, int);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30408,6 +30415,7 @@ package android.telecom {
|
|||||||
method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
|
method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
|
||||||
method public int getConnectionCapabilities();
|
method public int getConnectionCapabilities();
|
||||||
method public android.telecom.DisconnectCause getDisconnectCause();
|
method public android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public int getState();
|
method public int getState();
|
||||||
method public android.telecom.StatusHints getStatusHints();
|
method public android.telecom.StatusHints getStatusHints();
|
||||||
method public void hold();
|
method public void hold();
|
||||||
@@ -30433,6 +30441,7 @@ package android.telecom {
|
|||||||
method public void onConnectionCapabilitiesChanged(android.telecom.RemoteConnection, int);
|
method public void onConnectionCapabilitiesChanged(android.telecom.RemoteConnection, int);
|
||||||
method public void onDestroyed(android.telecom.RemoteConnection);
|
method public void onDestroyed(android.telecom.RemoteConnection);
|
||||||
method public void onDisconnected(android.telecom.RemoteConnection, android.telecom.DisconnectCause);
|
method public void onDisconnected(android.telecom.RemoteConnection, android.telecom.DisconnectCause);
|
||||||
|
method public void onExtrasChanged(android.telecom.RemoteConnection, android.os.Bundle);
|
||||||
method public void onPostDialChar(android.telecom.RemoteConnection, char);
|
method public void onPostDialChar(android.telecom.RemoteConnection, char);
|
||||||
method public void onPostDialWait(android.telecom.RemoteConnection, java.lang.String);
|
method public void onPostDialWait(android.telecom.RemoteConnection, java.lang.String);
|
||||||
method public void onRingbackRequested(android.telecom.RemoteConnection, boolean);
|
method public void onRingbackRequested(android.telecom.RemoteConnection, boolean);
|
||||||
|
|||||||
@@ -32149,6 +32149,7 @@ package android.telecom {
|
|||||||
method public android.telecom.GatewayInfo getGatewayInfo();
|
method public android.telecom.GatewayInfo getGatewayInfo();
|
||||||
method public android.net.Uri getHandle();
|
method public android.net.Uri getHandle();
|
||||||
method public int getHandlePresentation();
|
method public int getHandlePresentation();
|
||||||
|
method public android.os.Bundle getIntentExtras();
|
||||||
method public android.telecom.StatusHints getStatusHints();
|
method public android.telecom.StatusHints getStatusHints();
|
||||||
method public int getVideoState();
|
method public int getVideoState();
|
||||||
method public static boolean hasProperty(int, int);
|
method public static boolean hasProperty(int, int);
|
||||||
@@ -32209,6 +32210,7 @@ package android.telecom {
|
|||||||
method public final long getConnectionTime();
|
method public final long getConnectionTime();
|
||||||
method public final java.util.List<android.telecom.Connection> getConnections();
|
method public final java.util.List<android.telecom.Connection> getConnections();
|
||||||
method public final android.telecom.DisconnectCause getDisconnectCause();
|
method public final android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
|
method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
|
||||||
method public android.telecom.Connection getPrimaryConnection();
|
method public android.telecom.Connection getPrimaryConnection();
|
||||||
method public final int getState();
|
method public final int getState();
|
||||||
@@ -32234,6 +32236,7 @@ package android.telecom {
|
|||||||
method public final void setConnectionCapabilities(int);
|
method public final void setConnectionCapabilities(int);
|
||||||
method public final void setConnectionTime(long);
|
method public final void setConnectionTime(long);
|
||||||
method public final void setDisconnected(android.telecom.DisconnectCause);
|
method public final void setDisconnected(android.telecom.DisconnectCause);
|
||||||
|
method public final void setExtras(android.os.Bundle);
|
||||||
method public final void setOnHold();
|
method public final void setOnHold();
|
||||||
method public final void setStatusHints(android.telecom.StatusHints);
|
method public final void setStatusHints(android.telecom.StatusHints);
|
||||||
method public final void setVideoProvider(android.telecom.Connection, android.telecom.Connection.VideoProvider);
|
method public final void setVideoProvider(android.telecom.Connection, android.telecom.Connection.VideoProvider);
|
||||||
@@ -32261,6 +32264,7 @@ package android.telecom {
|
|||||||
method public final java.util.List<android.telecom.Conferenceable> getConferenceables();
|
method public final java.util.List<android.telecom.Conferenceable> getConferenceables();
|
||||||
method public final int getConnectionCapabilities();
|
method public final int getConnectionCapabilities();
|
||||||
method public final android.telecom.DisconnectCause getDisconnectCause();
|
method public final android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public final int getState();
|
method public final int getState();
|
||||||
method public final android.telecom.StatusHints getStatusHints();
|
method public final android.telecom.StatusHints getStatusHints();
|
||||||
method public final android.telecom.Connection.VideoProvider getVideoProvider();
|
method public final android.telecom.Connection.VideoProvider getVideoProvider();
|
||||||
@@ -32289,6 +32293,7 @@ package android.telecom {
|
|||||||
method public final void setConnectionService(android.telecom.ConnectionService);
|
method public final void setConnectionService(android.telecom.ConnectionService);
|
||||||
method public final void setDialing();
|
method public final void setDialing();
|
||||||
method public final void setDisconnected(android.telecom.DisconnectCause);
|
method public final void setDisconnected(android.telecom.DisconnectCause);
|
||||||
|
method public final void setExtras(android.os.Bundle);
|
||||||
method public final void setInitialized();
|
method public final void setInitialized();
|
||||||
method public final void setInitializing();
|
method public final void setInitializing();
|
||||||
method public final void setNextPostDialChar(char);
|
method public final void setNextPostDialChar(char);
|
||||||
@@ -32554,6 +32559,7 @@ package android.telecom {
|
|||||||
method public final int getConnectionCapabilities();
|
method public final int getConnectionCapabilities();
|
||||||
method public final java.util.List<android.telecom.RemoteConnection> getConnections();
|
method public final java.util.List<android.telecom.RemoteConnection> getConnections();
|
||||||
method public android.telecom.DisconnectCause getDisconnectCause();
|
method public android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public final int getState();
|
method public final int getState();
|
||||||
method public void hold();
|
method public void hold();
|
||||||
method public void merge();
|
method public void merge();
|
||||||
@@ -32577,6 +32583,7 @@ package android.telecom {
|
|||||||
method public void onConnectionRemoved(android.telecom.RemoteConference, android.telecom.RemoteConnection);
|
method public void onConnectionRemoved(android.telecom.RemoteConference, android.telecom.RemoteConnection);
|
||||||
method public void onDestroyed(android.telecom.RemoteConference);
|
method public void onDestroyed(android.telecom.RemoteConference);
|
||||||
method public void onDisconnected(android.telecom.RemoteConference, android.telecom.DisconnectCause);
|
method public void onDisconnected(android.telecom.RemoteConference, android.telecom.DisconnectCause);
|
||||||
|
method public void onExtrasChanged(android.telecom.RemoteConference, android.os.Bundle);
|
||||||
method public void onStateChanged(android.telecom.RemoteConference, int, int);
|
method public void onStateChanged(android.telecom.RemoteConference, int, int);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32592,6 +32599,7 @@ package android.telecom {
|
|||||||
method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
|
method public java.util.List<android.telecom.RemoteConnection> getConferenceableConnections();
|
||||||
method public int getConnectionCapabilities();
|
method public int getConnectionCapabilities();
|
||||||
method public android.telecom.DisconnectCause getDisconnectCause();
|
method public android.telecom.DisconnectCause getDisconnectCause();
|
||||||
|
method public final android.os.Bundle getExtras();
|
||||||
method public int getState();
|
method public int getState();
|
||||||
method public android.telecom.StatusHints getStatusHints();
|
method public android.telecom.StatusHints getStatusHints();
|
||||||
method public void hold();
|
method public void hold();
|
||||||
@@ -32618,6 +32626,7 @@ package android.telecom {
|
|||||||
method public void onConnectionCapabilitiesChanged(android.telecom.RemoteConnection, int);
|
method public void onConnectionCapabilitiesChanged(android.telecom.RemoteConnection, int);
|
||||||
method public void onDestroyed(android.telecom.RemoteConnection);
|
method public void onDestroyed(android.telecom.RemoteConnection);
|
||||||
method public void onDisconnected(android.telecom.RemoteConnection, android.telecom.DisconnectCause);
|
method public void onDisconnected(android.telecom.RemoteConnection, android.telecom.DisconnectCause);
|
||||||
|
method public void onExtrasChanged(android.telecom.RemoteConnection, android.os.Bundle);
|
||||||
method public void onPostDialChar(android.telecom.RemoteConnection, char);
|
method public void onPostDialChar(android.telecom.RemoteConnection, char);
|
||||||
method public void onPostDialWait(android.telecom.RemoteConnection, java.lang.String);
|
method public void onPostDialWait(android.telecom.RemoteConnection, java.lang.String);
|
||||||
method public void onRingbackRequested(android.telecom.RemoteConnection, boolean);
|
method public void onRingbackRequested(android.telecom.RemoteConnection, boolean);
|
||||||
|
|||||||
@@ -253,6 +253,7 @@ public final class Call {
|
|||||||
private final int mVideoState;
|
private final int mVideoState;
|
||||||
private final StatusHints mStatusHints;
|
private final StatusHints mStatusHints;
|
||||||
private final Bundle mExtras;
|
private final Bundle mExtras;
|
||||||
|
private final Bundle mIntentExtras;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the supplied capabilities supports the specified capability.
|
* Whether the supplied capabilities supports the specified capability.
|
||||||
@@ -480,12 +481,19 @@ public final class Call {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return A bundle extras to pass with the call
|
* @return The extras associated with this call.
|
||||||
*/
|
*/
|
||||||
public Bundle getExtras() {
|
public Bundle getExtras() {
|
||||||
return mExtras;
|
return mExtras;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The extras used with the original intent to place this call.
|
||||||
|
*/
|
||||||
|
public Bundle getIntentExtras() {
|
||||||
|
return mIntentExtras;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (o instanceof Details) {
|
if (o instanceof Details) {
|
||||||
@@ -504,7 +512,8 @@ public final class Call {
|
|||||||
Objects.equals(mGatewayInfo, d.mGatewayInfo) &&
|
Objects.equals(mGatewayInfo, d.mGatewayInfo) &&
|
||||||
Objects.equals(mVideoState, d.mVideoState) &&
|
Objects.equals(mVideoState, d.mVideoState) &&
|
||||||
Objects.equals(mStatusHints, d.mStatusHints) &&
|
Objects.equals(mStatusHints, d.mStatusHints) &&
|
||||||
Objects.equals(mExtras, d.mExtras);
|
Objects.equals(mExtras, d.mExtras) &&
|
||||||
|
Objects.equals(mIntentExtras, d.mIntentExtras);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -524,7 +533,8 @@ public final class Call {
|
|||||||
Objects.hashCode(mGatewayInfo) +
|
Objects.hashCode(mGatewayInfo) +
|
||||||
Objects.hashCode(mVideoState) +
|
Objects.hashCode(mVideoState) +
|
||||||
Objects.hashCode(mStatusHints) +
|
Objects.hashCode(mStatusHints) +
|
||||||
Objects.hashCode(mExtras);
|
Objects.hashCode(mExtras) +
|
||||||
|
Objects.hashCode(mIntentExtras);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@hide} */
|
/** {@hide} */
|
||||||
@@ -541,7 +551,8 @@ public final class Call {
|
|||||||
GatewayInfo gatewayInfo,
|
GatewayInfo gatewayInfo,
|
||||||
int videoState,
|
int videoState,
|
||||||
StatusHints statusHints,
|
StatusHints statusHints,
|
||||||
Bundle extras) {
|
Bundle extras,
|
||||||
|
Bundle intentExtras) {
|
||||||
mHandle = handle;
|
mHandle = handle;
|
||||||
mHandlePresentation = handlePresentation;
|
mHandlePresentation = handlePresentation;
|
||||||
mCallerDisplayName = callerDisplayName;
|
mCallerDisplayName = callerDisplayName;
|
||||||
@@ -555,6 +566,7 @@ public final class Call {
|
|||||||
mVideoState = videoState;
|
mVideoState = videoState;
|
||||||
mStatusHints = statusHints;
|
mStatusHints = statusHints;
|
||||||
mExtras = extras;
|
mExtras = extras;
|
||||||
|
mIntentExtras = intentExtras;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -986,7 +998,8 @@ public final class Call {
|
|||||||
parcelableCall.getGatewayInfo(),
|
parcelableCall.getGatewayInfo(),
|
||||||
parcelableCall.getVideoState(),
|
parcelableCall.getVideoState(),
|
||||||
parcelableCall.getStatusHints(),
|
parcelableCall.getStatusHints(),
|
||||||
parcelableCall.getExtras());
|
parcelableCall.getExtras(),
|
||||||
|
parcelableCall.getIntentExtras());
|
||||||
boolean detailsChanged = !Objects.equals(mDetails, details);
|
boolean detailsChanged = !Objects.equals(mDetails, details);
|
||||||
if (detailsChanged) {
|
if (detailsChanged) {
|
||||||
mDetails = details;
|
mDetails = details;
|
||||||
|
|||||||
@@ -16,7 +16,9 @@
|
|||||||
|
|
||||||
package android.telecom;
|
package android.telecom;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.telecom.Connection.VideoProvider;
|
import android.telecom.Connection.VideoProvider;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -52,6 +54,7 @@ public abstract class Conference extends Conferenceable {
|
|||||||
public void onVideoStateChanged(Conference c, int videoState) { }
|
public void onVideoStateChanged(Conference c, int videoState) { }
|
||||||
public void onVideoProviderChanged(Conference c, Connection.VideoProvider videoProvider) {}
|
public void onVideoProviderChanged(Conference c, Connection.VideoProvider videoProvider) {}
|
||||||
public void onStatusHintsChanged(Conference conference, StatusHints statusHints) {}
|
public void onStatusHintsChanged(Conference conference, StatusHints statusHints) {}
|
||||||
|
public void onExtrasChanged(Conference conference, Bundle extras) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Set<Listener> mListeners = new CopyOnWriteArraySet<>();
|
private final Set<Listener> mListeners = new CopyOnWriteArraySet<>();
|
||||||
@@ -70,6 +73,7 @@ public abstract class Conference extends Conferenceable {
|
|||||||
private String mDisconnectMessage;
|
private String mDisconnectMessage;
|
||||||
private long mConnectTimeMillis = CONNECT_TIME_NOT_SPECIFIED;
|
private long mConnectTimeMillis = CONNECT_TIME_NOT_SPECIFIED;
|
||||||
private StatusHints mStatusHints;
|
private StatusHints mStatusHints;
|
||||||
|
private Bundle mExtras;
|
||||||
|
|
||||||
private final Connection.Listener mConnectionDeathListener = new Connection.Listener() {
|
private final Connection.Listener mConnectionDeathListener = new Connection.Listener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -600,4 +604,25 @@ public abstract class Conference extends Conferenceable {
|
|||||||
public final StatusHints getStatusHints() {
|
public final StatusHints getStatusHints() {
|
||||||
return mStatusHints;
|
return mStatusHints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set some extras that can be associated with this {@code Conference}. No assumptions should
|
||||||
|
* be made as to how an In-Call UI or service will handle these extras.
|
||||||
|
* Keys should be fully qualified (e.g., com.example.MY_EXTRA) to avoid conflicts.
|
||||||
|
*
|
||||||
|
* @param extras The extras associated with this {@code Connection}.
|
||||||
|
*/
|
||||||
|
public final void setExtras(@Nullable Bundle extras) {
|
||||||
|
mExtras = extras;
|
||||||
|
for (Listener l : mListeners) {
|
||||||
|
l.onExtrasChanged(this, extras);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The extras associated with this conference.
|
||||||
|
*/
|
||||||
|
public final Bundle getExtras() {
|
||||||
|
return mExtras;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,8 +20,10 @@ import com.android.internal.os.SomeArgs;
|
|||||||
import com.android.internal.telecom.IVideoCallback;
|
import com.android.internal.telecom.IVideoCallback;
|
||||||
import com.android.internal.telecom.IVideoProvider;
|
import com.android.internal.telecom.IVideoProvider;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
@@ -334,6 +336,7 @@ public abstract class Connection extends Conferenceable {
|
|||||||
List<ConferenceParticipant> participants) {}
|
List<ConferenceParticipant> participants) {}
|
||||||
public void onConferenceStarted() {}
|
public void onConferenceStarted() {}
|
||||||
public void onConferenceMergeFailed(Connection c) {}
|
public void onConferenceMergeFailed(Connection c) {}
|
||||||
|
public void onExtrasChanged(Connection c, Bundle extras) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static abstract class VideoProvider {
|
public static abstract class VideoProvider {
|
||||||
@@ -832,6 +835,7 @@ public abstract class Connection extends Conferenceable {
|
|||||||
private DisconnectCause mDisconnectCause;
|
private DisconnectCause mDisconnectCause;
|
||||||
private Conference mConference;
|
private Conference mConference;
|
||||||
private ConnectionService mConnectionService;
|
private ConnectionService mConnectionService;
|
||||||
|
private Bundle mExtras;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new Connection.
|
* Create a new Connection.
|
||||||
@@ -941,6 +945,13 @@ public abstract class Connection extends Conferenceable {
|
|||||||
return mStatusHints;
|
return mStatusHints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The extras associated with this connection.
|
||||||
|
*/
|
||||||
|
public final Bundle getExtras() {
|
||||||
|
return mExtras;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assign a listener to be notified of state changes.
|
* Assign a listener to be notified of state changes.
|
||||||
*
|
*
|
||||||
@@ -1370,6 +1381,21 @@ public abstract class Connection extends Conferenceable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set some extras that can be associated with this {@code Connection}. No assumptions should
|
||||||
|
* be made as to how an In-Call UI or service will handle these extras.
|
||||||
|
* Keys should be fully qualified (e.g., com.example.MY_EXTRA) to avoid conflicts.
|
||||||
|
*
|
||||||
|
* @param extras The extras associated with this {@code Connection}.
|
||||||
|
*/
|
||||||
|
public final void setExtras(@Nullable Bundle extras) {
|
||||||
|
checkImmutable();
|
||||||
|
mExtras = extras;
|
||||||
|
for (Listener l : mListeners) {
|
||||||
|
l.onExtrasChanged(this, extras);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notifies this Connection that the {@link #getAudioState()} property has a new value.
|
* Notifies this Connection that the {@link #getAudioState()} property has a new value.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.app.Service;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
@@ -432,6 +433,12 @@ public abstract class ConnectionService extends Service {
|
|||||||
String id = mIdByConference.get(conference);
|
String id = mIdByConference.get(conference);
|
||||||
mAdapter.setStatusHints(id, statusHints);
|
mAdapter.setStatusHints(id, statusHints);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExtrasChanged(Conference conference, Bundle extras) {
|
||||||
|
String id = mIdByConference.get(conference);
|
||||||
|
mAdapter.setExtras(id, extras);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final Connection.Listener mConnectionListener = new Connection.Listener() {
|
private final Connection.Listener mConnectionListener = new Connection.Listener() {
|
||||||
@@ -569,6 +576,14 @@ public abstract class ConnectionService extends Service {
|
|||||||
mAdapter.onConferenceMergeFailed(id);
|
mAdapter.onConferenceMergeFailed(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onExtrasChanged(Connection connection, Bundle extras) {
|
||||||
|
String id = mIdByConnection.get(connection);
|
||||||
|
if (id != null) {
|
||||||
|
mAdapter.setExtras(id, extras);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@@ -638,7 +653,8 @@ public abstract class ConnectionService extends Service {
|
|||||||
connection.getAudioModeIsVoip(),
|
connection.getAudioModeIsVoip(),
|
||||||
connection.getStatusHints(),
|
connection.getStatusHints(),
|
||||||
connection.getDisconnectCause(),
|
connection.getDisconnectCause(),
|
||||||
createIdList(connection.getConferenceables())));
|
createIdList(connection.getConferenceables()),
|
||||||
|
connection.getExtras()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void abort(String callId) {
|
private void abort(String callId) {
|
||||||
@@ -919,7 +935,8 @@ public abstract class ConnectionService extends Service {
|
|||||||
null : conference.getVideoProvider().getInterface(),
|
null : conference.getVideoProvider().getInterface(),
|
||||||
conference.getVideoState(),
|
conference.getVideoState(),
|
||||||
conference.getConnectTimeMillis(),
|
conference.getConnectTimeMillis(),
|
||||||
conference.getStatusHints());
|
conference.getStatusHints(),
|
||||||
|
conference.getExtras());
|
||||||
|
|
||||||
mAdapter.addConferenceCall(id, parcelableConference);
|
mAdapter.addConferenceCall(id, parcelableConference);
|
||||||
mAdapter.setVideoProvider(id, conference.getVideoProvider());
|
mAdapter.setVideoProvider(id, conference.getVideoProvider());
|
||||||
@@ -964,7 +981,8 @@ public abstract class ConnectionService extends Service {
|
|||||||
connection.getAudioModeIsVoip(),
|
connection.getAudioModeIsVoip(),
|
||||||
connection.getStatusHints(),
|
connection.getStatusHints(),
|
||||||
connection.getDisconnectCause(),
|
connection.getDisconnectCause(),
|
||||||
emptyList);
|
emptyList,
|
||||||
|
connection.getExtras());
|
||||||
mAdapter.addExistingConnection(id, parcelableConnection);
|
mAdapter.addExistingConnection(id, parcelableConnection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.telecom;
|
package android.telecom;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.IBinder.DeathRecipient;
|
import android.os.IBinder.DeathRecipient;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
|
||||||
@@ -384,4 +385,20 @@ final class ConnectionServiceAdapter implements DeathRecipient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets extras associated with a connection.
|
||||||
|
*
|
||||||
|
* @param callId The unique ID of the call.
|
||||||
|
* @param extras The extras to associate with this call.
|
||||||
|
*/
|
||||||
|
void setExtras(String callId, Bundle extras) {
|
||||||
|
Log.v(this, "setExtras: %s", extras);
|
||||||
|
for (IConnectionServiceAdapter adapter : mAdapters) {
|
||||||
|
try {
|
||||||
|
adapter.setExtras(callId, extras);
|
||||||
|
} catch (RemoteException ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.telecom;
|
package android.telecom;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
@@ -60,6 +61,7 @@ final class ConnectionServiceAdapterServant {
|
|||||||
private static final int MSG_ADD_EXISTING_CONNECTION = 21;
|
private static final int MSG_ADD_EXISTING_CONNECTION = 21;
|
||||||
private static final int MSG_ON_POST_DIAL_CHAR = 22;
|
private static final int MSG_ON_POST_DIAL_CHAR = 22;
|
||||||
private static final int MSG_SET_CONFERENCE_MERGE_FAILED = 23;
|
private static final int MSG_SET_CONFERENCE_MERGE_FAILED = 23;
|
||||||
|
private static final int MSG_SET_EXTRAS = 24;
|
||||||
|
|
||||||
private final IConnectionServiceAdapter mDelegate;
|
private final IConnectionServiceAdapter mDelegate;
|
||||||
|
|
||||||
@@ -230,6 +232,14 @@ final class ConnectionServiceAdapterServant {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case MSG_SET_EXTRAS: {
|
||||||
|
SomeArgs args = (SomeArgs) msg.obj;
|
||||||
|
try {
|
||||||
|
mDelegate.setExtras((String) args.arg1, (Bundle) args.arg2);
|
||||||
|
} finally {
|
||||||
|
args.recycle();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -401,6 +411,14 @@ final class ConnectionServiceAdapterServant {
|
|||||||
args.arg2 = connection;
|
args.arg2 = connection;
|
||||||
mHandler.obtainMessage(MSG_ADD_EXISTING_CONNECTION, args).sendToTarget();
|
mHandler.obtainMessage(MSG_ADD_EXISTING_CONNECTION, args).sendToTarget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void setExtras(String connectionId, Bundle extras) {
|
||||||
|
SomeArgs args = SomeArgs.obtain();
|
||||||
|
args.arg1 = connectionId;
|
||||||
|
args.arg2 = extras;
|
||||||
|
mHandler.obtainMessage(MSG_SET_EXTRAS, args).sendToTarget();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public ConnectionServiceAdapterServant(IConnectionServiceAdapter delegate) {
|
public ConnectionServiceAdapterServant(IConnectionServiceAdapter delegate) {
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
private final StatusHints mStatusHints;
|
private final StatusHints mStatusHints;
|
||||||
private final int mVideoState;
|
private final int mVideoState;
|
||||||
private final List<String> mConferenceableCallIds;
|
private final List<String> mConferenceableCallIds;
|
||||||
|
private final Bundle mIntentExtras;
|
||||||
private final Bundle mExtras;
|
private final Bundle mExtras;
|
||||||
|
|
||||||
public ParcelableCall(
|
public ParcelableCall(
|
||||||
@@ -77,6 +78,7 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
StatusHints statusHints,
|
StatusHints statusHints,
|
||||||
int videoState,
|
int videoState,
|
||||||
List<String> conferenceableCallIds,
|
List<String> conferenceableCallIds,
|
||||||
|
Bundle intentExtras,
|
||||||
Bundle extras) {
|
Bundle extras) {
|
||||||
mId = id;
|
mId = id;
|
||||||
mState = state;
|
mState = state;
|
||||||
@@ -98,6 +100,7 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
mStatusHints = statusHints;
|
mStatusHints = statusHints;
|
||||||
mVideoState = videoState;
|
mVideoState = videoState;
|
||||||
mConferenceableCallIds = Collections.unmodifiableList(conferenceableCallIds);
|
mConferenceableCallIds = Collections.unmodifiableList(conferenceableCallIds);
|
||||||
|
mIntentExtras = intentExtras;
|
||||||
mExtras = extras;
|
mExtras = extras;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,7 +230,7 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Any extras to pass with the call
|
* Any extras associated with this call.
|
||||||
*
|
*
|
||||||
* @return a bundle of extras
|
* @return a bundle of extras
|
||||||
*/
|
*/
|
||||||
@@ -235,6 +238,15 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
return mExtras;
|
return mExtras;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extras passed in as part of the original call intent.
|
||||||
|
*
|
||||||
|
* @return The intent extras.
|
||||||
|
*/
|
||||||
|
public Bundle getIntentExtras() {
|
||||||
|
return mIntentExtras;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates to the receiver of the {@link ParcelableCall} whether a change has occurred in the
|
* Indicates to the receiver of the {@link ParcelableCall} whether a change has occurred in the
|
||||||
* {@link android.telecom.InCallService.VideoCall} associated with this call. Since
|
* {@link android.telecom.InCallService.VideoCall} associated with this call. Since
|
||||||
@@ -277,7 +289,8 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
int videoState = source.readInt();
|
int videoState = source.readInt();
|
||||||
List<String> conferenceableCallIds = new ArrayList<>();
|
List<String> conferenceableCallIds = new ArrayList<>();
|
||||||
source.readList(conferenceableCallIds, classLoader);
|
source.readList(conferenceableCallIds, classLoader);
|
||||||
Bundle extras = source.readParcelable(classLoader);
|
Bundle intentExtras = source.readBundle(classLoader);
|
||||||
|
Bundle extras = source.readBundle(classLoader);
|
||||||
return new ParcelableCall(
|
return new ParcelableCall(
|
||||||
id,
|
id,
|
||||||
state,
|
state,
|
||||||
@@ -299,6 +312,7 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
statusHints,
|
statusHints,
|
||||||
videoState,
|
videoState,
|
||||||
conferenceableCallIds,
|
conferenceableCallIds,
|
||||||
|
intentExtras,
|
||||||
extras);
|
extras);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,7 +352,8 @@ public final class ParcelableCall implements Parcelable {
|
|||||||
destination.writeParcelable(mStatusHints, 0);
|
destination.writeParcelable(mStatusHints, 0);
|
||||||
destination.writeInt(mVideoState);
|
destination.writeInt(mVideoState);
|
||||||
destination.writeList(mConferenceableCallIds);
|
destination.writeList(mConferenceableCallIds);
|
||||||
destination.writeParcelable(mExtras, 0);
|
destination.writeBundle(mIntentExtras);
|
||||||
|
destination.writeBundle(mExtras);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package android.telecom;
|
package android.telecom;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
@@ -38,6 +39,7 @@ public final class ParcelableConference implements Parcelable {
|
|||||||
private final IVideoProvider mVideoProvider;
|
private final IVideoProvider mVideoProvider;
|
||||||
private final int mVideoState;
|
private final int mVideoState;
|
||||||
private StatusHints mStatusHints;
|
private StatusHints mStatusHints;
|
||||||
|
private Bundle mExtras;
|
||||||
|
|
||||||
public ParcelableConference(
|
public ParcelableConference(
|
||||||
PhoneAccountHandle phoneAccount,
|
PhoneAccountHandle phoneAccount,
|
||||||
@@ -47,7 +49,8 @@ public final class ParcelableConference implements Parcelable {
|
|||||||
IVideoProvider videoProvider,
|
IVideoProvider videoProvider,
|
||||||
int videoState,
|
int videoState,
|
||||||
long connectTimeMillis,
|
long connectTimeMillis,
|
||||||
StatusHints statusHints) {
|
StatusHints statusHints,
|
||||||
|
Bundle extras) {
|
||||||
mPhoneAccount = phoneAccount;
|
mPhoneAccount = phoneAccount;
|
||||||
mState = state;
|
mState = state;
|
||||||
mConnectionCapabilities = connectionCapabilities;
|
mConnectionCapabilities = connectionCapabilities;
|
||||||
@@ -57,6 +60,7 @@ public final class ParcelableConference implements Parcelable {
|
|||||||
mVideoState = videoState;
|
mVideoState = videoState;
|
||||||
mConnectTimeMillis = connectTimeMillis;
|
mConnectTimeMillis = connectTimeMillis;
|
||||||
mStatusHints = statusHints;
|
mStatusHints = statusHints;
|
||||||
|
mExtras = extras;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -110,6 +114,10 @@ public final class ParcelableConference implements Parcelable {
|
|||||||
return mStatusHints;
|
return mStatusHints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Bundle getExtras() {
|
||||||
|
return mExtras;
|
||||||
|
}
|
||||||
|
|
||||||
public static final Parcelable.Creator<ParcelableConference> CREATOR =
|
public static final Parcelable.Creator<ParcelableConference> CREATOR =
|
||||||
new Parcelable.Creator<ParcelableConference> () {
|
new Parcelable.Creator<ParcelableConference> () {
|
||||||
@Override
|
@Override
|
||||||
@@ -125,9 +133,10 @@ public final class ParcelableConference implements Parcelable {
|
|||||||
IVideoProvider.Stub.asInterface(source.readStrongBinder());
|
IVideoProvider.Stub.asInterface(source.readStrongBinder());
|
||||||
int videoState = source.readInt();
|
int videoState = source.readInt();
|
||||||
StatusHints statusHints = source.readParcelable(classLoader);
|
StatusHints statusHints = source.readParcelable(classLoader);
|
||||||
|
Bundle extras = source.readBundle(classLoader);
|
||||||
|
|
||||||
return new ParcelableConference(phoneAccount, state, capabilities, connectionIds,
|
return new ParcelableConference(phoneAccount, state, capabilities, connectionIds,
|
||||||
videoCallProvider, videoState, connectTimeMillis, statusHints);
|
videoCallProvider, videoState, connectTimeMillis, statusHints, extras);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -154,5 +163,6 @@ public final class ParcelableConference implements Parcelable {
|
|||||||
mVideoProvider != null ? mVideoProvider.asBinder() : null);
|
mVideoProvider != null ? mVideoProvider.asBinder() : null);
|
||||||
destination.writeInt(mVideoState);
|
destination.writeInt(mVideoState);
|
||||||
destination.writeParcelable(mStatusHints, 0);
|
destination.writeParcelable(mStatusHints, 0);
|
||||||
|
destination.writeBundle(mExtras);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.telecom;
|
package android.telecom;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ public final class ParcelableConnection implements Parcelable {
|
|||||||
private final StatusHints mStatusHints;
|
private final StatusHints mStatusHints;
|
||||||
private final DisconnectCause mDisconnectCause;
|
private final DisconnectCause mDisconnectCause;
|
||||||
private final List<String> mConferenceableConnectionIds;
|
private final List<String> mConferenceableConnectionIds;
|
||||||
|
private final Bundle mExtras;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public ParcelableConnection(
|
public ParcelableConnection(
|
||||||
@@ -62,7 +64,8 @@ public final class ParcelableConnection implements Parcelable {
|
|||||||
boolean isVoipAudioMode,
|
boolean isVoipAudioMode,
|
||||||
StatusHints statusHints,
|
StatusHints statusHints,
|
||||||
DisconnectCause disconnectCause,
|
DisconnectCause disconnectCause,
|
||||||
List<String> conferenceableConnectionIds) {
|
List<String> conferenceableConnectionIds,
|
||||||
|
Bundle extras) {
|
||||||
mPhoneAccount = phoneAccount;
|
mPhoneAccount = phoneAccount;
|
||||||
mState = state;
|
mState = state;
|
||||||
mConnectionCapabilities = capabilities;
|
mConnectionCapabilities = capabilities;
|
||||||
@@ -76,7 +79,8 @@ public final class ParcelableConnection implements Parcelable {
|
|||||||
mIsVoipAudioMode = isVoipAudioMode;
|
mIsVoipAudioMode = isVoipAudioMode;
|
||||||
mStatusHints = statusHints;
|
mStatusHints = statusHints;
|
||||||
mDisconnectCause = disconnectCause;
|
mDisconnectCause = disconnectCause;
|
||||||
this.mConferenceableConnectionIds = conferenceableConnectionIds;
|
mConferenceableConnectionIds = conferenceableConnectionIds;
|
||||||
|
mExtras = extras;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PhoneAccountHandle getPhoneAccount() {
|
public PhoneAccountHandle getPhoneAccount() {
|
||||||
@@ -136,15 +140,21 @@ public final class ParcelableConnection implements Parcelable {
|
|||||||
return mConferenceableConnectionIds;
|
return mConferenceableConnectionIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final Bundle getExtras() {
|
||||||
|
return mExtras;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new StringBuilder()
|
return new StringBuilder()
|
||||||
.append("ParcelableConnection [act:")
|
.append("ParcelableConnection [act:")
|
||||||
.append(mPhoneAccount)
|
.append(mPhoneAccount)
|
||||||
.append(", state:")
|
.append("], state:")
|
||||||
.append(mState)
|
.append(mState)
|
||||||
.append(", capabilities:")
|
.append(", capabilities:")
|
||||||
.append(Connection.capabilitiesToString(mConnectionCapabilities))
|
.append(Connection.capabilitiesToString(mConnectionCapabilities))
|
||||||
|
.append(", extras:")
|
||||||
|
.append(mExtras)
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,6 +180,7 @@ public final class ParcelableConnection implements Parcelable {
|
|||||||
DisconnectCause disconnectCause = source.readParcelable(classLoader);
|
DisconnectCause disconnectCause = source.readParcelable(classLoader);
|
||||||
List<String> conferenceableConnectionIds = new ArrayList<>();
|
List<String> conferenceableConnectionIds = new ArrayList<>();
|
||||||
source.readStringList(conferenceableConnectionIds);
|
source.readStringList(conferenceableConnectionIds);
|
||||||
|
Bundle extras = source.readBundle(classLoader);
|
||||||
|
|
||||||
return new ParcelableConnection(
|
return new ParcelableConnection(
|
||||||
phoneAccount,
|
phoneAccount,
|
||||||
@@ -185,7 +196,8 @@ public final class ParcelableConnection implements Parcelable {
|
|||||||
audioModeIsVoip,
|
audioModeIsVoip,
|
||||||
statusHints,
|
statusHints,
|
||||||
disconnectCause,
|
disconnectCause,
|
||||||
conferenceableConnectionIds);
|
conferenceableConnectionIds,
|
||||||
|
extras);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -218,5 +230,6 @@ public final class ParcelableConnection implements Parcelable {
|
|||||||
destination.writeParcelable(mStatusHints, 0);
|
destination.writeParcelable(mStatusHints, 0);
|
||||||
destination.writeParcelable(mDisconnectCause, 0);
|
destination.writeParcelable(mDisconnectCause, 0);
|
||||||
destination.writeStringList(mConferenceableConnectionIds);
|
destination.writeStringList(mConferenceableConnectionIds);
|
||||||
|
destination.writeBundle(mExtras);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,9 @@ package android.telecom;
|
|||||||
|
|
||||||
import com.android.internal.telecom.IConnectionService;
|
import com.android.internal.telecom.IConnectionService;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
|
||||||
@@ -49,6 +51,7 @@ public final class RemoteConference {
|
|||||||
RemoteConference conference,
|
RemoteConference conference,
|
||||||
List<RemoteConnection> conferenceableConnections) {}
|
List<RemoteConnection> conferenceableConnections) {}
|
||||||
public void onDestroyed(RemoteConference conference) {}
|
public void onDestroyed(RemoteConference conference) {}
|
||||||
|
public void onExtrasChanged(RemoteConference conference, @Nullable Bundle extras) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final String mId;
|
private final String mId;
|
||||||
@@ -65,6 +68,7 @@ public final class RemoteConference {
|
|||||||
private int mState = Connection.STATE_NEW;
|
private int mState = Connection.STATE_NEW;
|
||||||
private DisconnectCause mDisconnectCause;
|
private DisconnectCause mDisconnectCause;
|
||||||
private int mConnectionCapabilities;
|
private int mConnectionCapabilities;
|
||||||
|
private Bundle mExtras;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
RemoteConference(String id, IConnectionService connectionService) {
|
RemoteConference(String id, IConnectionService connectionService) {
|
||||||
@@ -209,6 +213,21 @@ public final class RemoteConference {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
void setExtras(final Bundle extras) {
|
||||||
|
mExtras = extras;
|
||||||
|
for (CallbackRecord<Callback> record : mCallbackRecords) {
|
||||||
|
final RemoteConference conference = this;
|
||||||
|
final Callback callback = record.getCallback();
|
||||||
|
record.getHandler().post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
callback.onExtrasChanged(conference, extras);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the list of {@link RemoteConnection}s contained in this conference.
|
* Returns the list of {@link RemoteConnection}s contained in this conference.
|
||||||
*
|
*
|
||||||
@@ -237,6 +256,15 @@ public final class RemoteConference {
|
|||||||
return mConnectionCapabilities;
|
return mConnectionCapabilities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the extras associated with this {@code RemoteConnection}.
|
||||||
|
*
|
||||||
|
* @return The extras for this connection.
|
||||||
|
*/
|
||||||
|
public final Bundle getExtras() {
|
||||||
|
return mExtras;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disconnects the conference call as well as the child {@link RemoteConnection}s.
|
* Disconnects the conference call as well as the child {@link RemoteConnection}s.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -20,8 +20,10 @@ import com.android.internal.telecom.IConnectionService;
|
|||||||
import com.android.internal.telecom.IVideoCallback;
|
import com.android.internal.telecom.IVideoCallback;
|
||||||
import com.android.internal.telecom.IVideoProvider;
|
import com.android.internal.telecom.IVideoProvider;
|
||||||
|
|
||||||
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
@@ -197,9 +199,17 @@ public final class RemoteConnection {
|
|||||||
public void onConferenceChanged(
|
public void onConferenceChanged(
|
||||||
RemoteConnection connection,
|
RemoteConnection connection,
|
||||||
RemoteConference conference) {}
|
RemoteConference conference) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles changes to the {@code RemoteConference} extras.
|
||||||
|
*
|
||||||
|
* @param connection The {@code RemoteConnection} invoking this method.
|
||||||
|
* @param extras The extras containing other information associated with the connection.
|
||||||
|
*/
|
||||||
|
public void onExtrasChanged(RemoteConnection connection, @Nullable Bundle extras) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@hide} */
|
/** @hide */
|
||||||
public static class VideoProvider {
|
public static class VideoProvider {
|
||||||
|
|
||||||
public abstract static class Listener {
|
public abstract static class Listener {
|
||||||
@@ -415,6 +425,7 @@ public final class RemoteConnection {
|
|||||||
private String mCallerDisplayName;
|
private String mCallerDisplayName;
|
||||||
private int mCallerDisplayNamePresentation;
|
private int mCallerDisplayNamePresentation;
|
||||||
private RemoteConference mConference;
|
private RemoteConference mConference;
|
||||||
|
private Bundle mExtras;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @hide
|
* @hide
|
||||||
@@ -613,6 +624,15 @@ public final class RemoteConnection {
|
|||||||
return mVideoProvider;
|
return mVideoProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the extras associated with this {@code RemoteConnection}.
|
||||||
|
*
|
||||||
|
* @return The extras for this connection.
|
||||||
|
*/
|
||||||
|
public final Bundle getExtras() {
|
||||||
|
return mExtras;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines whether this {@code RemoteConnection} is requesting ringback.
|
* Determines whether this {@code RemoteConnection} is requesting ringback.
|
||||||
*
|
*
|
||||||
@@ -1097,6 +1117,21 @@ public final class RemoteConnection {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
void setExtras(final Bundle extras) {
|
||||||
|
mExtras = extras;
|
||||||
|
for (CallbackRecord record : mCallbackRecords) {
|
||||||
|
final RemoteConnection connection = this;
|
||||||
|
final Callback callback = record.getCallback();
|
||||||
|
record.getHandler().post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
callback.onExtrasChanged(connection, extras);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a RemoteConnection represents a failure, and which will be in
|
* Create a RemoteConnection represents a failure, and which will be in
|
||||||
* {@link Connection#STATE_DISCONNECTED}. Attempting to use it for anything will almost
|
* {@link Connection#STATE_DISCONNECTED}. Attempting to use it for anything will almost
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.telecom;
|
package android.telecom;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.IBinder.DeathRecipient;
|
import android.os.IBinder.DeathRecipient;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
@@ -318,6 +319,17 @@ final class RemoteConnectionService {
|
|||||||
|
|
||||||
mOurConnectionServiceImpl.addRemoteExistingConnection(remoteConnction);
|
mOurConnectionServiceImpl.addRemoteExistingConnection(remoteConnction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setExtras(String callId, Bundle extras) {
|
||||||
|
if (mConnectionById.containsKey(callId)) {
|
||||||
|
findConnectionForAction(callId, "setExtras")
|
||||||
|
.setExtras(extras);
|
||||||
|
} else {
|
||||||
|
findConferenceForAction(callId, "setExtras")
|
||||||
|
.setExtras(extras);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final ConnectionServiceAdapterServant mServant =
|
private final ConnectionServiceAdapterServant mServant =
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.android.internal.telecom;
|
|||||||
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.telecom.ConnectionRequest;
|
import android.telecom.ConnectionRequest;
|
||||||
import android.telecom.DisconnectCause;
|
import android.telecom.DisconnectCause;
|
||||||
import android.telecom.ParcelableConnection;
|
import android.telecom.ParcelableConnection;
|
||||||
@@ -83,4 +84,6 @@ oneway interface IConnectionServiceAdapter {
|
|||||||
void setConferenceableConnections(String callId, in List<String> conferenceableCallIds);
|
void setConferenceableConnections(String callId, in List<String> conferenceableCallIds);
|
||||||
|
|
||||||
void addExistingConnection(String callId, in ParcelableConnection connection);
|
void addExistingConnection(String callId, in ParcelableConnection connection);
|
||||||
|
|
||||||
|
void setExtras(String callId, in Bundle extras);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user