Mis Telecomm API changes - telephony

This CL fixes up Telephony to work with the API changes
in ag/501321.

Change-Id: Iaffe0b84cea6003f2a9b9d8b30676743d2b236d4
diff --git a/sip/src/com/android/services/telephony/sip/SipConnection.java b/sip/src/com/android/services/telephony/sip/SipConnection.java
index c6e1be6..5b065fd 100644
--- a/sip/src/com/android/services/telephony/sip/SipConnection.java
+++ b/sip/src/com/android/services/telephony/sip/SipConnection.java
@@ -174,6 +174,12 @@
     }
 
     @Override
+    protected void onSwapWithBackgroundCall() {
+        if (VERBOSE) log("onSwapWithBackgroundCall");
+        // TODO(sail): Implement swap.
+    }
+
+    @Override
     protected void onChildrenChanged(List<Connection> children) {
         if (VERBOSE) log("onChildrenChanged, children: " + children);
     }
@@ -260,6 +266,10 @@
         if (VERBOSE) log("onAddedToCallService");
         updateCallCapabilities();
         setAudioModeIsVoip(true);
+        if (mOriginalConnection != null) {
+            setCallerDisplayName(mOriginalConnection.getCnapName(),
+                    mOriginalConnection.getCnapNamePresentation());
+        }
     }
 
     private void close() {
diff --git a/sip/src/com/android/services/telephony/sip/SipConnectionService.java b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
index 1dc78e3..513fbfd 100644
--- a/sip/src/com/android/services/telephony/sip/SipConnectionService.java
+++ b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
@@ -119,7 +119,7 @@
             if (VERBOSE) log("onCreateIncomingConnection, new connection: " + originalConnection);
             if (originalConnection != null) {
                 SipConnection connection = new SipConnection(originalConnection);
-                response.onResult(getConnectionRequestForIncomingCall(request, sipAudioCall),
+                response.onResult(getConnectionRequestForIncomingCall(request, originalConnection),
                         connection);
             } else {
                 if (VERBOSE) log("onCreateIncomingConnection, takingIncomingCall failed");
@@ -195,15 +195,10 @@
     }
 
     private ConnectionRequest getConnectionRequestForIncomingCall(ConnectionRequest request,
-            SipAudioCall audioCall) {
-        SipProfile callee = audioCall.getPeerProfile();
-        String domain = callee.getSipDomain();
-        if (domain.endsWith(":5060")) {
-            domain = domain.substring(0, domain.length() - 5);
-        }
-        Uri uri = Uri.fromParts(SipUtil.SCHEME_SIP, callee.getUserName() + "@" + domain, null);
+            com.android.internal.telephony.Connection connection) {
+        Uri uri = Uri.fromParts(SipUtil.SCHEME_SIP, connection.getAddress(), null);
         return new ConnectionRequest(request.getAccount(), request.getCallId(), uri,
-                request.getExtras(), 0);
+                connection.getNumberPresentation(), request.getExtras(), 0);
     }
 
     private static void log(String msg) {
diff --git a/src/com/android/services/telephony/GsmConferenceController.java b/src/com/android/services/telephony/GsmConferenceController.java
index 138aa8e..593c2dc 100644
--- a/src/com/android/services/telephony/GsmConferenceController.java
+++ b/src/com/android/services/telephony/GsmConferenceController.java
@@ -30,8 +30,7 @@
  */
 public class GsmConferenceController {
 
-    private final Connection.Listener mConnectionListener =
-            new Connection.ListenerBase() {
+    private final Connection.Listener mConnectionListener = new Connection.Listener() {
                 @Override
                 public void onStateChanged(Connection c, int state) {
                     // No need to recalculate for conference calls, just traditional calls.
@@ -42,13 +41,11 @@
 
                 /** ${inheritDoc} */
                 @Override
-                public void onDisconnected(
-                        Connection c, int cause, String message) {
+                public void onDisconnected(Connection c, int cause, String message) {
                     // When a connection disconnects, make sure to release its parent reference
                     // so that the parent can move to disconnected as well.
                     c.setParentConnection(null);
                 }
-
             };
 
     /** The known GSM connections. */
diff --git a/src/com/android/services/telephony/PstnConnectionService.java b/src/com/android/services/telephony/PstnConnectionService.java
index f60cd73..a38fc8d 100644
--- a/src/com/android/services/telephony/PstnConnectionService.java
+++ b/src/com/android/services/telephony/PstnConnectionService.java
@@ -145,7 +145,12 @@
                 }
 
                 respondWithResult(
-                        new ConnectionRequest(request.getCallId(), handle, request.getExtras(),
+                        new ConnectionRequest(
+                                request.getAccount(),
+                                request.getCallId(),
+                                handle,
+                                connection.getNumberPresentation(),
+                                request.getExtras(),
                                 request.getVideoState()),
                         response,
                         telephonyConnection);
@@ -160,6 +165,13 @@
         super.onCreateIncomingConnection(request, response);
     }
 
+    @Override
+    protected void onConnectionAdded(Connection connection) {
+        if (connection instanceof TelephonyConnection) {
+            ((TelephonyConnection) connection).onAddedToCallService();
+        }
+    }
+
     /** {@inheritDoc} */
     @Override
     protected boolean canCall(Uri handle) {
@@ -176,7 +188,7 @@
             case TelephonyManager.PHONE_TYPE_GSM: {
                 final GsmConnection gsmConn = new GsmConnection(phone, connection);
                 mGsmConferenceController.add(gsmConn);
-                gsmConn.addConnectionListener(new Connection.ListenerBase() {
+                gsmConn.addConnectionListener(new Connection.Listener() {
                     @Override
                     public void onDestroyed(Connection c) {
                         mGsmConferenceController.remove(gsmConn);
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 17ab1c9..551e018 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -144,6 +144,15 @@
         }
     }
 
+    final void onAddedToCallService() {
+        updateCallCapabilities();
+        if (mOriginalConnection != null) {
+            setCallerDisplayName(
+                    mOriginalConnection.getCnapName(),
+                    mOriginalConnection.getCnapNamePresentation());
+        }
+    }
+
     protected void hangup(int disconnectCause) {
         if (mOriginalConnection != null) {
             try {
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 0cefab6..9a0d5a4 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -111,7 +111,6 @@
             final TelephonyConnection telephonyConnection =
                     createTelephonyConnection(request, phone, connection);
             respondWithResult(request, response, telephonyConnection);
-            telephonyConnection.updateCallCapabilities();
 
             final com.android.internal.telephony.Connection connectionFinal = connection;
             PostDialListener postDialListener = new PostDialListener() {
@@ -215,7 +214,7 @@
         final TelephonyConnection telephonyConnection =
                 onCreateTelephonyConnection(request, phone, connection);
         sKnownConnections.add(connection);
-        telephonyConnection.addConnectionListener(new Connection.ListenerBase() {
+        telephonyConnection.addConnectionListener(new Connection.Listener() {
             @Override
             public void onDestroyed(Connection c) {
                 telephonyConnection.removeConnectionListener(this);