summaryrefslogtreecommitdiff
path: root/packages/CompanionDeviceManager/src
diff options
context:
space:
mode:
authorEugene Susla <eugenesusla@google.com>2017-03-28 15:40:44 -0700
committerSvetoslav Ganov <svetoslavganov@google.com>2017-04-14 23:17:04 +0000
commit200c37f4136e0d49fd853122900d2209e424701c (patch)
tree2b98abdd9d9e5ee2142d67a0873eeea84842b23d /packages/CompanionDeviceManager/src
parent5423b4e0a85c6dfd6ffeb04c72b5e050058a7150 (diff)
[DO NOT MERGE] Stop scan on device chooser activity backgrounded
This effectively treats chooser activity pause event as cancel. Bug: 30932767 Test: Install two toy apps and call associate API from both. Ensure foreground app always end up showing fresh data. Change-Id: I7f5742e9878245550f678efd244bf84c427baef3
Diffstat (limited to 'packages/CompanionDeviceManager/src')
-rw-r--r--packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java22
-rw-r--r--packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java10
2 files changed, 24 insertions, 8 deletions
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java
index 466d6bb969a0..b145290d0ce6 100644
--- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java
+++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java
@@ -79,15 +79,25 @@ public class DeviceChooserActivity extends Activity {
}
mPairButton = findViewById(R.id.button_pair);
- mPairButton.setOnClickListener((view) ->
- onPairTapped(getService().mSelectedDevice));
+ mPairButton.setOnClickListener(v -> onPairTapped(getService().mSelectedDevice));
updatePairButtonEnabled();
mCancelButton = findViewById(R.id.button_cancel);
- mCancelButton.setOnClickListener((view) -> {
- setResult(RESULT_CANCELED);
- finish();
- });
+ mCancelButton.setOnClickListener(v -> cancel());
+ }
+
+ private void cancel() {
+ getService().onCancel();
+ setResult(RESULT_CANCELED);
+ finish();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ if (!isFinishing()) {
+ cancel();
+ }
}
private CharSequence getCallingAppName() {
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java
index 227d8048292a..246bd2bc7ce0 100644
--- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java
+++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceDiscoveryService.java
@@ -202,8 +202,6 @@ public class DeviceDiscoveryService extends Service {
reset();
} else if (DEBUG) Log.i(LOG_TAG, "startDiscovery: duplicate request: " + request);
-
-
if (!ArrayUtils.isEmpty(mDevicesFound)) {
onReadyToShowUI();
}
@@ -307,6 +305,14 @@ public class DeviceDiscoveryService extends Service {
}
}
+ void onCancel() {
+ try {
+ mServiceCallback.onDeviceSelectionCancel();
+ } catch (RemoteException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
class DevicesAdapter extends ArrayAdapter<DeviceFilterPair> {
//TODO wifi icon
private Drawable BLUETOOTH_ICON = icon(android.R.drawable.stat_sys_data_bluetooth);