Remove onConnectionAdded/Removed from ConnectionService API (2/2)

These methods are no longer needed because they are redundant. Refactor
SipConnectionService and TelephonyConnectionService to accommodate.

Bug: 17262026
Change-Id: If134e2785f1fa2cff59157b23710d1a3053f17e4
diff --git a/sip/src/com/android/services/telephony/sip/SipConnectionService.java b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
index 78c0440..ffaf64d 100644
--- a/sip/src/com/android/services/telephony/sip/SipConnectionService.java
+++ b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
@@ -90,6 +90,7 @@
         final SipConnection connection = new SipConnection();
         connection.setHandle(request.getHandle(), PropertyPresentation.ALLOWED);
         connection.setInitializing();
+        connection.onAddedToCallService();
         boolean attemptCall = true;
 
         if (!SipUtil.isVoipSupported(this)) {
@@ -181,6 +182,7 @@
             if (originalConnection != null) {
                 SipConnection sipConnection = new SipConnection();
                 sipConnection.initialize(originalConnection);
+                sipConnection.onAddedToCallService();
                 return sipConnection;
             } else {
                 if (VERBOSE) log("onCreateIncomingConnection, takingIncomingCall failed");
@@ -190,19 +192,6 @@
         return Connection.createFailedConnection(DisconnectCause.ERROR_UNSPECIFIED, null);
     }
 
-    @Override
-    public void onConnectionAdded(Connection connection) {
-        if (VERBOSE) log("onConnectionAdded, connection: " + connection);
-        if (connection instanceof SipConnection) {
-            ((SipConnection) connection).onAddedToCallService();
-        }
-    }
-
-    @Override
-    public void onConnectionRemoved(Connection connection) {
-        if (VERBOSE) log("onConnectionRemoved, connection: " + connection);
-    }
-
     private com.android.internal.telephony.Connection createConnectionForProfile(
             SipProfile profile,
             ConnectionRequest request) {
diff --git a/src/com/android/services/telephony/GsmConferenceController.java b/src/com/android/services/telephony/GsmConferenceController.java
index 894e5bb..5cc27a7 100644
--- a/src/com/android/services/telephony/GsmConferenceController.java
+++ b/src/com/android/services/telephony/GsmConferenceController.java
@@ -33,17 +33,22 @@
  */
 final class GsmConferenceController {
     private final Connection.Listener mConnectionListener = new Connection.Listener() {
-                @Override
-                public void onStateChanged(Connection c, int state) {
-                    recalculate();
-                }
+        @Override
+        public void onStateChanged(Connection c, int state) {
+            recalculate();
+        }
 
-                /** ${inheritDoc} */
-                @Override
-                public void onDisconnected(Connection c, int cause, String message) {
-                    recalculate();
-                }
-            };
+        /** ${inheritDoc} */
+        @Override
+        public void onDisconnected(Connection c, int cause, String message) {
+            recalculate();
+        }
+
+        @Override
+        public void onDestroyed(Connection connection) {
+            remove((GsmConnection) connection);
+        }
+    };
 
     /** The known GSM connections. */
     private final List<GsmConnection> mGsmConnections = new ArrayList<>();
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 851269d..3d085ca 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -203,20 +203,6 @@
 
     }
 
-    @Override
-    public void onConnectionAdded(Connection connection) {
-        if (connection instanceof GsmConnection) {
-            mGsmConferenceController.add((GsmConnection) connection);
-        }
-    }
-
-    @Override
-    public void onConnectionRemoved(Connection connection) {
-        if (connection instanceof GsmConnection) {
-            mGsmConferenceController.remove((GsmConnection) connection);
-        }
-    }
-
     private void placeOutgoingConnection(
             TelephonyConnection connection, Phone phone, ConnectionRequest request) {
         String number = connection.getHandle().getSchemeSpecificPart();
@@ -253,7 +239,9 @@
             Phone phone, com.android.internal.telephony.Connection originalConnection) {
         int phoneType = phone.getPhoneType();
         if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
-            return new GsmConnection(originalConnection);
+            GsmConnection connection = new GsmConnection(originalConnection);
+            mGsmConferenceController.add(connection);
+            return connection;
         } else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
             boolean allowMute = allowMute(phone);
             return new CdmaConnection(originalConnection, allowMute);