diff options
author | Eugene Susla <eugenesusla@google.com> | 2019-11-14 11:18:50 -0800 |
---|---|---|
committer | Eugene Susla <eugenesusla@google.com> | 2019-12-20 15:50:11 -0800 |
commit | b45b15a7012d27545be0efda226e66327c2a2840 (patch) | |
tree | 31af8454101d3050b7349ee0466a27ca73c1817b /packages/CompanionDeviceManager | |
parent | 0d2e2c2be0374fdf426212368ab2e593612bf151 (diff) |
Use ServiceConnector and @DataClass in companion service
Refactor CompanionDeviceManagerService away from hand-rolled
ServiceConnection management in favor of ServiceConnector
Test: using toy app, ensure companion API still works
Change-Id: I90f937adf4e6f9af2137c77de91ba5cf93fa2212
Diffstat (limited to 'packages/CompanionDeviceManager')
-rw-r--r-- | packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java index d11b5c573ca9..7aa997e39307 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java @@ -37,12 +37,12 @@ import android.bluetooth.le.ScanCallback; import android.bluetooth.le.ScanFilter; import android.bluetooth.le.ScanResult; import android.bluetooth.le.ScanSettings; +import android.companion.Association; import android.companion.AssociationRequest; import android.companion.BluetoothDeviceFilter; import android.companion.BluetoothLeDeviceFilter; import android.companion.DeviceFilter; import android.companion.ICompanionDeviceDiscoveryService; -import android.companion.ICompanionDeviceDiscoveryServiceCallback; import android.companion.IFindDeviceCallback; import android.companion.WifiDeviceFilter; import android.content.BroadcastReceiver; @@ -63,6 +63,7 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; +import com.android.internal.infra.AndroidFuture; import com.android.internal.util.ArrayUtils; import com.android.internal.util.CollectionUtils; import com.android.internal.util.Preconditions; @@ -97,7 +98,7 @@ public class DeviceDiscoveryService extends Service { DevicesAdapter mDevicesAdapter; IFindDeviceCallback mFindCallback; - ICompanionDeviceDiscoveryServiceCallback mServiceCallback; + AndroidFuture<Association> mServiceCallback; boolean mIsScanning = false; @Nullable DeviceChooserActivity mActivity = null; @@ -107,7 +108,7 @@ public class DeviceDiscoveryService extends Service { public void startDiscovery(AssociationRequest request, String callingPackage, IFindDeviceCallback findCallback, - ICompanionDeviceDiscoveryServiceCallback serviceCallback) { + AndroidFuture serviceCallback) { if (DEBUG) { Log.i(LOG_TAG, "startDiscovery() called with: filter = [" + request @@ -303,23 +304,12 @@ public class DeviceDiscoveryService extends Service { } void onDeviceSelected(String callingPackage, String deviceAddress) { - try { - mServiceCallback.onDeviceSelected( - //TODO is this the right userId? - callingPackage, getUserId(), deviceAddress); - } catch (RemoteException e) { - Log.e(LOG_TAG, "Failed to record association: " - + callingPackage + " <-> " + deviceAddress); - } + mServiceCallback.complete(new Association(getUserId(), deviceAddress, callingPackage)); } void onCancel() { if (DEBUG) Log.i(LOG_TAG, "onCancel()"); - try { - mServiceCallback.onDeviceSelectionCancel(); - } catch (RemoteException e) { - throw new RuntimeException(e); - } + mServiceCallback.cancel(true); } class DevicesAdapter extends ArrayAdapter<DeviceFilterPair> { |