Merge "Update Telephony with new createConnection API changes"
diff --git a/src/com/android/services/telephony/PstnConnectionService.java b/src/com/android/services/telephony/PstnConnectionService.java
index a654c69..00ed255 100644
--- a/src/com/android/services/telephony/PstnConnectionService.java
+++ b/src/com/android/services/telephony/PstnConnectionService.java
@@ -54,7 +54,7 @@
     @Override
     public void onCreateConnections(
             final ConnectionRequest request,
-            final Response<ConnectionRequest, Connection> response) {
+            final OutgoingCallResponse<Connection> response) {
 
         if (!canCall(request.getHandle())) {
             Log.d(this, "Cannot place the call with %s", this.getClass().getSimpleName());
diff --git a/src/com/android/services/telephony/SipConnectionService.java b/src/com/android/services/telephony/SipConnectionService.java
index 3faf787..465dba1 100644
--- a/src/com/android/services/telephony/SipConnectionService.java
+++ b/src/com/android/services/telephony/SipConnectionService.java
@@ -48,7 +48,7 @@
     @Override
     public void onCreateConnections(
             ConnectionRequest request,
-            Response<ConnectionRequest, Connection> callback) {
+            OutgoingCallResponse callback) {
         new GetSipProfileTask(this, request, callback).execute();
         super.onCreateConnections(request, callback);
     }
@@ -114,14 +114,14 @@
      */
     private class GetSipProfileTask extends AsyncTask<Void, Void, SipProfile> {
         private final ConnectionRequest mRequest;
-        private final Response<ConnectionRequest, Connection> mResponse;
+        private final OutgoingCallResponse mResponse;
         private final SipProfileDb mSipProfileDb;
         private final SipSharedPreferences mSipSharedPreferences;
 
         GetSipProfileTask(
                 Context context,
                 ConnectionRequest request,
-                Response<ConnectionRequest, Connection> response) {
+                OutgoingCallResponse response) {
             mRequest = request;
             mResponse = response;
             mSipProfileDb = new SipProfileDb(context);
@@ -149,7 +149,7 @@
     private void onSipProfileChosen(
             SipProfile profile,
             ConnectionRequest request,
-            Response<ConnectionRequest, Connection> response) {
+            OutgoingCallResponse response) {
         SipPhone phone = null;
         if (profile != null) {
             String sipUri = profile.getUriString();
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index db4720b..a009bc8 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -51,7 +51,7 @@
     protected void startCallWithPhone(
             Phone phone,
             ConnectionRequest request,
-            Response<ConnectionRequest, Connection> response) {
+            OutgoingCallResponse<Connection> response) {
         Log.d(this, "startCallWithPhone: %s.", request);
 
         if (phone == null) {
@@ -135,7 +135,7 @@
     private boolean checkServiceStateForOutgoingCall(
             Phone phone,
             ConnectionRequest request,
-            Response<ConnectionRequest, Connection> response) {
+            OutgoingCallResponse<Connection> response) {
         int state = phone.getServiceState().getState();
         switch (state) {
             case ServiceState.STATE_IN_SERVICE:
@@ -184,19 +184,28 @@
     }
 
     protected void respondWithResult(
-            Uri request,
-            Response<Uri, Subscription> response,
-            Subscription result) {
+            ConnectionRequest request,
+            Response<ConnectionRequest, Connection> response,
+            Connection result) {
         Log.d(this, "respondWithResult %s -> %s", request, result);
         response.onResult(request, result);
     }
 
     protected void respondWithResult(
             ConnectionRequest request,
-            Response<ConnectionRequest, Connection> response,
+            OutgoingCallResponse<Connection> response,
             Connection result) {
         Log.d(this, "respondWithResult %s -> %s", request, result);
-        response.onResult(request, result);
+        response.onSuccess(request, result);
+    }
+
+    protected void respondWithError(
+            ConnectionRequest request,
+            OutgoingCallResponse<Connection> response,
+            int errorCode,
+            String errorMsg) {
+        Log.d(this, "respondWithError %s: %d %s", request, errorCode, errorMsg);
+        response.onFailure(request, errorCode, errorMsg);
     }
 
     protected final TelephonyConnection createTelephonyConnection(