summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Chen <evanxinchen@google.com> 2021-11-01 20:34:13 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-11-01 20:34:13 +0000
commite1211c6726443394669a8b46bdcd36aee02faba3 (patch)
tree9770bc152c65719c7e23fcc54cfd85ad45b83126
parent2bb5aa5527d117ecc73e76d50116a5aa497058ef (diff)
parent404168a4f01a86518a68c74cac9f389ba80b4456 (diff)
Merge "Make sure sendresult after association was created" into sc-v2-dev
-rw-r--r--core/java/android/companion/ICompanionDeviceDiscoveryService.aidl2
-rw-r--r--packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java8
-rw-r--r--packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java10
-rw-r--r--services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java3
4 files changed, 22 insertions, 1 deletions
diff --git a/core/java/android/companion/ICompanionDeviceDiscoveryService.aidl b/core/java/android/companion/ICompanionDeviceDiscoveryService.aidl
index a630873c7f67..e1c13f7fc9e1 100644
--- a/core/java/android/companion/ICompanionDeviceDiscoveryService.aidl
+++ b/core/java/android/companion/ICompanionDeviceDiscoveryService.aidl
@@ -29,4 +29,6 @@ oneway interface ICompanionDeviceDiscoveryService {
in String callingPackage,
in IFindDeviceCallback findCallback,
in AndroidFuture<Association> serviceCallback);
+
+ void onAssociationCreated();
}
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java
index b4cafd8548f4..edbfd2a8f03e 100644
--- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java
+++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceActivity.java
@@ -254,8 +254,14 @@ public class CompanionDeviceActivity extends Activity {
Log.i(LOG_TAG, "onDeviceConfirmed(selectedDevice = " + selectedDevice + ")");
getService().onDeviceSelected(
getCallingPackage(), getDeviceMacAddress(selectedDevice.device));
+ }
+
+ void setResultAndFinish() {
+ Log.i(LOG_TAG, "setResultAndFinish(selectedDevice = "
+ + getService().mSelectedDevice.device + ")");
setResult(RESULT_OK,
- new Intent().putExtra(CompanionDeviceManager.EXTRA_DEVICE, selectedDevice.device));
+ new Intent().putExtra(
+ CompanionDeviceManager.EXTRA_DEVICE, getService().mSelectedDevice.device));
finish();
}
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java
index c24782e8b310..5df8e3c83a7a 100644
--- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java
+++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java
@@ -117,6 +117,11 @@ public class CompanionDeviceDiscoveryService extends Service {
CompanionDeviceDiscoveryService::startDiscovery,
CompanionDeviceDiscoveryService.this, request));
}
+
+ @Override
+ public void onAssociationCreated() {
+ Handler.getMain().post(CompanionDeviceDiscoveryService.this::onAssociationCreated);
+ }
};
private ScanCallback mBLEScanCallback;
@@ -222,6 +227,11 @@ public class CompanionDeviceDiscoveryService extends Service {
SCAN_TIMEOUT);
}
+ @MainThread
+ private void onAssociationCreated() {
+ mActivity.setResultAndFinish();
+ }
+
private boolean shouldScan(List<? extends DeviceFilter> mediumSpecificFilters) {
return !isEmpty(mediumSpecificFilters) || isEmpty(mFilters);
}
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index 4748a86b79c6..202876627117 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -457,6 +457,9 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
}, FgThread.getExecutor()).whenComplete(uncheckExceptions((association, err) -> {
if (err == null) {
addAssociation(association, userId);
+ mServiceConnectors.forUser(userId).post(service -> {
+ service.onAssociationCreated();
+ });
} else {
Slog.e(LOG_TAG, "Failed to discover device(s)", err);
callback.onFailure("No devices found: " + err.getMessage());