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/CallServiceProviderWrapper.java b/src/com/android/telecomm/CallServiceProviderWrapper.java
index 18cff35..0b993d8 100644
--- a/src/com/android/telecomm/CallServiceProviderWrapper.java
+++ b/src/com/android/telecomm/CallServiceProviderWrapper.java
@@ -55,26 +55,16 @@
* @param componentName The component name of the service to bind to.
* @param repository The call-service repository.
*/
- public CallServiceProviderWrapper(ComponentName componentName, CallServiceRepository repository) {
+ public CallServiceProviderWrapper(
+ ComponentName componentName, CallServiceRepository repository) {
+
super(CALL_SERVICE_PROVIDER_ACTION, componentName);
mRepository = repository;
}
/** {@inheritDoc} */
- @Override public void handleSuccessfulConnection(IBinder binder) {
+ @Override protected void setServiceInterface(IBinder binder) {
mServiceInterface = ICallServiceProvider.Stub.asInterface(binder);
- mRepository.processProvider(getComponentName(), this);
- }
-
- /** {@inheritDoc} */
- @Override public void handleFailedConnection() {
- mRepository.abortProvider(getComponentName());
- }
-
- /** {@inheritDoc} */
- @Override public void handleServiceDisconnected() {
- mServiceInterface = null;
- // TODO(santoscordon): fill in.
}
/**