Use BindCallback with ServiceBinder.bind().

Incoming calls sequence will need to know when the bind() succeeds so it
no longer makes sense for the wrapper objects to have direct references
to the finder.

Changes included:
- Making the handle* methods of ServiceBinder private implementations
  instead of astract.
- Add overriden setServiceInterface() to the wrapper.
- Add simple BindCallback interface used to get notified of bind()
  results.
- Update CallServiceRepository to use BindCallback.

Change-Id: I59300e16463e88626df6d055b7fd4be1d850c5f2
diff --git a/src/com/android/telecomm/CallServiceWrapper.java b/src/com/android/telecomm/CallServiceWrapper.java
index 2dc5170..74277c4 100644
--- a/src/com/android/telecomm/CallServiceWrapper.java
+++ b/src/com/android/telecomm/CallServiceWrapper.java
@@ -65,27 +65,6 @@
         mAdapter = adapter;
     }
 
-    /**
-     * Initializes the underlying call-service implementation upon successful binding.
-     *
-     * {@inheritDoc}
-     */
-    @Override public void handleSuccessfulConnection(IBinder binder) {
-        mServiceInterface = ICallService.Stub.asInterface(binder);
-        setCallServiceAdapter(mAdapter);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void handleFailedConnection() {
-        // TODO(santoscordon): fill in
-    }
-
-    /** {@inheritDoc} */
-    @Override public void handleServiceDisconnected() {
-        mServiceInterface = null;
-        // TODO(santoscordon): fill in.
-    }
-
     public CallServiceInfo getInfo() {
         return mCallServiceInfo;
     }
@@ -141,4 +120,10 @@
             Log.e(TAG, "Failed to disconnect call " + callId + ".", e);
         }
     }
+
+    /** {@inheritDoc} */
+    @Override protected void setServiceInterface(IBinder binder) {
+        mServiceInterface = ICallService.Stub.asInterface(binder);
+        setCallServiceAdapter(mAdapter);
+    }
 }