diff options
Diffstat (limited to 'telecomm/java/android/telecom/ConnectionService.java')
-rw-r--r-- | telecomm/java/android/telecom/ConnectionService.java | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java index efd311e..6eee99d 100644 --- a/telecomm/java/android/telecom/ConnectionService.java +++ b/telecomm/java/android/telecom/ConnectionService.java @@ -104,12 +104,14 @@ public abstract class ConnectionService extends Service { PhoneAccountHandle connectionManagerPhoneAccount, String id, ConnectionRequest request, - boolean isIncoming) { + boolean isIncoming, + boolean isUnknown) { SomeArgs args = SomeArgs.obtain(); args.arg1 = connectionManagerPhoneAccount; args.arg2 = id; args.arg3 = request; args.argi1 = isIncoming ? 1 : 0; + args.argi2 = isUnknown ? 1 : 0; mHandler.obtainMessage(MSG_CREATE_CONNECTION, args).sendToTarget(); } @@ -221,6 +223,7 @@ public abstract class ConnectionService extends Service { final String id = (String) args.arg2; final ConnectionRequest request = (ConnectionRequest) args.arg3; final boolean isIncoming = args.argi1 == 1; + final boolean isUnknown = args.argi2 == 1; if (!mAreAccountsInitialized) { Log.d(this, "Enqueueing pre-init request %s", id); mPreInitializationConnectionRequests.add(new Runnable() { @@ -230,7 +233,8 @@ public abstract class ConnectionService extends Service { connectionManagerPhoneAccount, id, request, - isIncoming); + isIncoming, + isUnknown); } }); } else { @@ -238,7 +242,8 @@ public abstract class ConnectionService extends Service { connectionManagerPhoneAccount, id, request, - isIncoming); + isIncoming, + isUnknown); } } finally { args.recycle(); @@ -523,12 +528,14 @@ public abstract class ConnectionService extends Service { final PhoneAccountHandle callManagerAccount, final String callId, final ConnectionRequest request, - boolean isIncoming) { + boolean isIncoming, + boolean isUnknown) { Log.d(this, "createConnection, callManagerAccount: %s, callId: %s, request: %s, " + - "isIncoming: %b", callManagerAccount, callId, request, isIncoming); + "isIncoming: %b, isUnknown: %b", callManagerAccount, callId, request, isIncoming, + isUnknown); - Connection connection = isIncoming - ? onCreateIncomingConnection(callManagerAccount, request) + Connection connection = isUnknown ? onCreateUnknownConnection(callManagerAccount, request) + : isIncoming ? onCreateIncomingConnection(callManagerAccount, request) : onCreateOutgoingConnection(callManagerAccount, request); Log.d(this, "createConnection, connection: %s", connection); if (connection == null) { @@ -873,6 +880,23 @@ public abstract class ConnectionService extends Service { } /** + * Create a {@code Connection} for a new unknown call. An unknown call is a call originating + * from the ConnectionService that was neither a user-initiated outgoing call, nor an incoming + * call created using + * {@code TelecomManager#addNewIncomingCall(PhoneAccountHandle, android.os.Bundle)}. + * + * @param connectionManagerPhoneAccount + * @param request + * @return + * + * @hide + */ + public Connection onCreateUnknownConnection(PhoneAccountHandle connectionManagerPhoneAccount, + ConnectionRequest request) { + return null; + } + + /** * Conference two specified connections. Invoked when the user has made a request to merge the * specified connections into a conference call. In response, the connection service should * create an instance of {@link Conference} and pass it into {@link #addConference}. |