Merge "Improve remote connection logging."

This commit is contained in:
Tyler Gunn
2020-08-12 18:27:36 +00:00
committed by Gerrit Code Review
4 changed files with 87 additions and 4 deletions

View File

@@ -1859,9 +1859,25 @@ public abstract class ConnectionService extends Service {
new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONFERENCE"),
request.getAccountHandle());
}
if (conference.getExtras() != null) {
conference.getExtras().putString(Connection.EXTRA_ORIGINAL_CONNECTION_ID, callId);
Bundle extras = request.getExtras();
Bundle newExtras = new Bundle();
newExtras.putString(Connection.EXTRA_ORIGINAL_CONNECTION_ID, callId);
if (extras != null) {
// If the request originated from a remote connection service, we will add some
// tracking information that Telecom can use to keep informed of which package
// made the remote request, and which remote connection service was used.
if (extras.containsKey(Connection.EXTRA_REMOTE_CONNECTION_ORIGINATING_PACKAGE_NAME)) {
newExtras.putString(
Connection.EXTRA_REMOTE_CONNECTION_ORIGINATING_PACKAGE_NAME,
extras.getString(
Connection.EXTRA_REMOTE_CONNECTION_ORIGINATING_PACKAGE_NAME));
newExtras.putParcelable(Connection.EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE,
request.getAccountHandle());
}
}
conference.putExtras(newExtras);
mConferenceById.put(callId, conference);
mIdByConference.put(conference, callId);
@@ -1937,6 +1953,30 @@ public abstract class ConnectionService extends Service {
Log.i(this, "createConnection, implementation returned null connection.");
connection = Connection.createFailedConnection(
new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONNECTION"));
} else {
try {
Bundle extras = request.getExtras();
if (extras != null) {
// If the request originated from a remote connection service, we will add some
// tracking information that Telecom can use to keep informed of which package
// made the remote request, and which remote connection service was used.
if (extras.containsKey(
Connection.EXTRA_REMOTE_CONNECTION_ORIGINATING_PACKAGE_NAME)) {
Bundle newExtras = new Bundle();
newExtras.putString(
Connection.EXTRA_REMOTE_CONNECTION_ORIGINATING_PACKAGE_NAME,
extras.getString(
Connection.EXTRA_REMOTE_CONNECTION_ORIGINATING_PACKAGE_NAME
));
newExtras.putParcelable(Connection.EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE,
request.getAccountHandle());
connection.putExtras(newExtras);
}
}
} catch (UnsupportedOperationException ose) {
// Do nothing; if the ConnectionService reported a failure it will be an instance
// of an immutable Connection which we cannot edit, so we're out of luck.
}
}
boolean isSelfManaged =