Modify ConnectionServiceAdapter to include Session
Modifies the ConnectionServiceAdapter to include Session Information in
the AIDL interface so that external Sessions can be started in Telecom
from Telephony.
Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: I31bbfe433dd062a50bd05083e1a639dd4cd03403
diff --git a/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java b/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java
index 486f9d5..afe5e33 100644
--- a/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java
+++ b/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java
@@ -21,6 +21,7 @@
import android.os.Handler;
import android.os.Message;
import android.os.RemoteException;
+import android.telecom.Logging.Session;
import com.android.internal.os.SomeArgs;
import com.android.internal.telecom.IConnectionServiceAdapter;
@@ -87,49 +88,55 @@
mDelegate.handleCreateConnectionComplete(
(String) args.arg1,
(ConnectionRequest) args.arg2,
- (ParcelableConnection) args.arg3);
+ (ParcelableConnection) args.arg3,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
break;
}
case MSG_SET_ACTIVE:
- mDelegate.setActive((String) msg.obj);
+ mDelegate.setActive((String) msg.obj, null /*Session.Info*/);
break;
case MSG_SET_RINGING:
- mDelegate.setRinging((String) msg.obj);
+ mDelegate.setRinging((String) msg.obj, null /*Session.Info*/);
break;
case MSG_SET_DIALING:
- mDelegate.setDialing((String) msg.obj);
+ mDelegate.setDialing((String) msg.obj, null /*Session.Info*/);
break;
case MSG_SET_PULLING:
- mDelegate.setPulling((String) msg.obj);
+ mDelegate.setPulling((String) msg.obj, null /*Session.Info*/);
break;
case MSG_SET_DISCONNECTED: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.setDisconnected((String) args.arg1, (DisconnectCause) args.arg2);
+ mDelegate.setDisconnected((String) args.arg1, (DisconnectCause) args.arg2,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
break;
}
case MSG_SET_ON_HOLD:
- mDelegate.setOnHold((String) msg.obj);
+ mDelegate.setOnHold((String) msg.obj, null /*Session.Info*/);
break;
case MSG_SET_RINGBACK_REQUESTED:
- mDelegate.setRingbackRequested((String) msg.obj, msg.arg1 == 1);
+ mDelegate.setRingbackRequested((String) msg.obj, msg.arg1 == 1,
+ null /*Session.Info*/);
break;
case MSG_SET_CONNECTION_CAPABILITIES:
- mDelegate.setConnectionCapabilities((String) msg.obj, msg.arg1);
+ mDelegate.setConnectionCapabilities((String) msg.obj, msg.arg1,
+ null /*Session.Info*/);
break;
case MSG_SET_CONNECTION_PROPERTIES:
- mDelegate.setConnectionProperties((String) msg.obj, msg.arg1);
+ mDelegate.setConnectionProperties((String) msg.obj, msg.arg1,
+ null /*Session.Info*/);
break;
case MSG_SET_IS_CONFERENCED: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.setIsConferenced((String) args.arg1, (String) args.arg2);
+ mDelegate.setIsConferenced((String) args.arg1, (String) args.arg2,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -139,19 +146,22 @@
SomeArgs args = (SomeArgs) msg.obj;
try {
mDelegate.addConferenceCall(
- (String) args.arg1, (ParcelableConference) args.arg2);
+ (String) args.arg1, (ParcelableConference) args.arg2,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
break;
}
case MSG_REMOVE_CALL:
- mDelegate.removeCall((String) msg.obj);
+ mDelegate.removeCall((String) msg.obj,
+ null /*Session.Info*/);
break;
case MSG_ON_POST_DIAL_WAIT: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.onPostDialWait((String) args.arg1, (String) args.arg2);
+ mDelegate.onPostDialWait((String) args.arg1, (String) args.arg2,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -160,35 +170,39 @@
case MSG_ON_POST_DIAL_CHAR: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.onPostDialChar((String) args.arg1, (char) args.argi1);
+ mDelegate.onPostDialChar((String) args.arg1, (char) args.argi1,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
break;
}
case MSG_QUERY_REMOTE_CALL_SERVICES:
- mDelegate.queryRemoteConnectionServices((RemoteServiceCallback) msg.obj);
+ mDelegate.queryRemoteConnectionServices((RemoteServiceCallback) msg.obj,
+ null /*Session.Info*/);
break;
case MSG_SET_VIDEO_STATE:
- mDelegate.setVideoState((String) msg.obj, msg.arg1);
+ mDelegate.setVideoState((String) msg.obj, msg.arg1, null /*Session.Info*/);
break;
case MSG_SET_VIDEO_CALL_PROVIDER: {
SomeArgs args = (SomeArgs) msg.obj;
try {
mDelegate.setVideoProvider((String) args.arg1,
- (IVideoProvider) args.arg2);
+ (IVideoProvider) args.arg2, null /*Session.Info*/);
} finally {
args.recycle();
}
break;
}
case MSG_SET_IS_VOIP_AUDIO_MODE:
- mDelegate.setIsVoipAudioMode((String) msg.obj, msg.arg1 == 1);
+ mDelegate.setIsVoipAudioMode((String) msg.obj, msg.arg1 == 1,
+ null /*Session.Info*/);
break;
case MSG_SET_STATUS_HINTS: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.setStatusHints((String) args.arg1, (StatusHints) args.arg2);
+ mDelegate.setStatusHints((String) args.arg1, (StatusHints) args.arg2,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -197,7 +211,8 @@
case MSG_SET_ADDRESS: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.setAddress((String) args.arg1, (Uri) args.arg2, args.argi1);
+ mDelegate.setAddress((String) args.arg1, (Uri) args.arg2, args.argi1,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -207,7 +222,8 @@
SomeArgs args = (SomeArgs) msg.obj;
try {
mDelegate.setCallerDisplayName(
- (String) args.arg1, (String) args.arg2, args.argi1);
+ (String) args.arg1, (String) args.arg2, args.argi1,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -216,8 +232,8 @@
case MSG_SET_CONFERENCEABLE_CONNECTIONS: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.setConferenceableConnections(
- (String) args.arg1, (List<String>) args.arg2);
+ mDelegate.setConferenceableConnections((String) args.arg1,
+ (List<String>) args.arg2, null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -226,8 +242,8 @@
case MSG_ADD_EXISTING_CONNECTION: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.addExistingConnection(
- (String) args.arg1, (ParcelableConnection) args.arg2);
+ mDelegate.addExistingConnection((String) args.arg1,
+ (ParcelableConnection) args.arg2, null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -236,7 +252,8 @@
case MSG_SET_CONFERENCE_MERGE_FAILED: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.setConferenceMergeFailed((String) args.arg1);
+ mDelegate.setConferenceMergeFailed((String) args.arg1,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -245,7 +262,8 @@
case MSG_PUT_EXTRAS: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.putExtras((String) args.arg1, (Bundle) args.arg2);
+ mDelegate.putExtras((String) args.arg1, (Bundle) args.arg2,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -254,7 +272,8 @@
case MSG_REMOVE_EXTRAS: {
SomeArgs args = (SomeArgs) msg.obj;
try {
- mDelegate.removeExtras((String) args.arg1, (List<String>) args.arg2);
+ mDelegate.removeExtras((String) args.arg1, (List<String>) args.arg2,
+ null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -264,7 +283,7 @@
SomeArgs args = (SomeArgs) msg.obj;
try {
mDelegate.onConnectionEvent((String) args.arg1, (String) args.arg2,
- (Bundle) args.arg3);
+ (Bundle) args.arg3, null /*Session.Info*/);
} finally {
args.recycle();
}
@@ -279,7 +298,8 @@
public void handleCreateConnectionComplete(
String id,
ConnectionRequest request,
- ParcelableConnection connection) {
+ ParcelableConnection connection,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = id;
args.arg2 = request;
@@ -288,28 +308,28 @@
}
@Override
- public void setActive(String connectionId) {
+ public void setActive(String connectionId, Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_ACTIVE, connectionId).sendToTarget();
}
@Override
- public void setRinging(String connectionId) {
+ public void setRinging(String connectionId, Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_RINGING, connectionId).sendToTarget();
}
@Override
- public void setDialing(String connectionId) {
+ public void setDialing(String connectionId, Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_DIALING, connectionId).sendToTarget();
}
@Override
- public void setPulling(String connectionId) {
+ public void setPulling(String connectionId, Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_PULLING, connectionId).sendToTarget();
}
@Override
- public void setDisconnected(
- String connectionId, DisconnectCause disconnectCause) {
+ public void setDisconnected(String connectionId, DisconnectCause disconnectCause,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = disconnectCause;
@@ -317,39 +337,43 @@
}
@Override
- public void setOnHold(String connectionId) {
+ public void setOnHold(String connectionId, Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_ON_HOLD, connectionId).sendToTarget();
}
@Override
- public void setRingbackRequested(String connectionId, boolean ringback) {
+ public void setRingbackRequested(String connectionId, boolean ringback,
+ Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_RINGBACK_REQUESTED, ringback ? 1 : 0, 0, connectionId)
.sendToTarget();
}
@Override
- public void setConnectionCapabilities(String connectionId, int connectionCapabilities) {
+ public void setConnectionCapabilities(String connectionId, int connectionCapabilities,
+ Session.Info sessionInfo) {
mHandler.obtainMessage(
MSG_SET_CONNECTION_CAPABILITIES, connectionCapabilities, 0, connectionId)
.sendToTarget();
}
@Override
- public void setConnectionProperties(String connectionId, int connectionProperties) {
+ public void setConnectionProperties(String connectionId, int connectionProperties,
+ Session.Info sessionInfo) {
mHandler.obtainMessage(
MSG_SET_CONNECTION_PROPERTIES, connectionProperties, 0, connectionId)
.sendToTarget();
}
@Override
- public void setConferenceMergeFailed(String callId) {
+ public void setConferenceMergeFailed(String callId, Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = callId;
mHandler.obtainMessage(MSG_SET_CONFERENCE_MERGE_FAILED, args).sendToTarget();
}
@Override
- public void setIsConferenced(String callId, String conferenceCallId) {
+ public void setIsConferenced(String callId, String conferenceCallId,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = callId;
args.arg2 = conferenceCallId;
@@ -357,7 +381,8 @@
}
@Override
- public void addConferenceCall(String callId, ParcelableConference parcelableConference) {
+ public void addConferenceCall(String callId, ParcelableConference parcelableConference,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = callId;
args.arg2 = parcelableConference;
@@ -365,12 +390,14 @@
}
@Override
- public void removeCall(String connectionId) {
+ public void removeCall(String connectionId,
+ Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_REMOVE_CALL, connectionId).sendToTarget();
}
@Override
- public void onPostDialWait(String connectionId, String remainingDigits) {
+ public void onPostDialWait(String connectionId, String remainingDigits,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = remainingDigits;
@@ -378,7 +405,8 @@
}
@Override
- public void onPostDialChar(String connectionId, char nextChar) {
+ public void onPostDialChar(String connectionId, char nextChar,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.argi1 = nextChar;
@@ -386,17 +414,20 @@
}
@Override
- public void queryRemoteConnectionServices(RemoteServiceCallback callback) {
+ public void queryRemoteConnectionServices(RemoteServiceCallback callback,
+ Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_QUERY_REMOTE_CALL_SERVICES, callback).sendToTarget();
}
@Override
- public void setVideoState(String connectionId, int videoState) {
+ public void setVideoState(String connectionId, int videoState,
+ Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_VIDEO_STATE, videoState, 0, connectionId).sendToTarget();
}
@Override
- public void setVideoProvider(String connectionId, IVideoProvider videoProvider) {
+ public void setVideoProvider(String connectionId, IVideoProvider videoProvider,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = videoProvider;
@@ -404,13 +435,15 @@
}
@Override
- public final void setIsVoipAudioMode(String connectionId, boolean isVoip) {
+ public final void setIsVoipAudioMode(String connectionId, boolean isVoip,
+ Session.Info sessionInfo) {
mHandler.obtainMessage(MSG_SET_IS_VOIP_AUDIO_MODE, isVoip ? 1 : 0, 0,
connectionId).sendToTarget();
}
@Override
- public final void setStatusHints(String connectionId, StatusHints statusHints) {
+ public final void setStatusHints(String connectionId, StatusHints statusHints,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = statusHints;
@@ -418,7 +451,8 @@
}
@Override
- public final void setAddress(String connectionId, Uri address, int presentation) {
+ public final void setAddress(String connectionId, Uri address, int presentation,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = address;
@@ -428,7 +462,8 @@
@Override
public final void setCallerDisplayName(
- String connectionId, String callerDisplayName, int presentation) {
+ String connectionId, String callerDisplayName, int presentation,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = callerDisplayName;
@@ -437,8 +472,8 @@
}
@Override
- public final void setConferenceableConnections(
- String connectionId, List<String> conferenceableConnectionIds) {
+ public final void setConferenceableConnections(String connectionId,
+ List<String> conferenceableConnectionIds, Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = conferenceableConnectionIds;
@@ -446,8 +481,8 @@
}
@Override
- public final void addExistingConnection(
- String connectionId, ParcelableConnection connection) {
+ public final void addExistingConnection(String connectionId,
+ ParcelableConnection connection, Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = connection;
@@ -455,7 +490,7 @@
}
@Override
- public final void putExtras(String connectionId, Bundle extras) {
+ public final void putExtras(String connectionId, Bundle extras, Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = extras;
@@ -463,7 +498,8 @@
}
@Override
- public final void removeExtras(String connectionId, List<String> keys) {
+ public final void removeExtras(String connectionId, List<String> keys,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = keys;
@@ -471,7 +507,8 @@
}
@Override
- public final void onConnectionEvent(String connectionId, String event, Bundle extras) {
+ public final void onConnectionEvent(String connectionId, String event, Bundle extras,
+ Session.Info sessionInfo) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = connectionId;
args.arg2 = event;