From 38dff3b78a63e2700477afe277d8b7c90776abbc Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Thu, 13 Jul 2017 14:41:32 -0700 Subject: [PATCH] [Companion] Close chooser dialog on device tap Fixes: 63597808 Test: Ensure list selection is now 1-tap Change-Id: If99fc5e5c9b24526ac48dfc1c87659b01e713989 --- .../DeviceChooserActivity.java | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java index 0cf21d236041..30c1fff5e6ee 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/DeviceChooserActivity.java @@ -55,6 +55,8 @@ public class DeviceChooserActivity extends Activity { Log.e(LOG_TAG, "About to show UI, but no devices to show"); } + mPairButton = findViewById(R.id.button_pair); + if (getService().mRequest.isSingleDevice()) { setContentView(R.layout.device_confirmation); final DeviceFilterPair selectedDevice = getService().mDevicesFound.get(0); @@ -62,9 +64,12 @@ public class DeviceChooserActivity extends Activity { R.string.confirmation_title, getCallingAppName(), selectedDevice.getDisplayName()), 0)); + mPairButton.setOnClickListener(v -> onDeviceConfirmed(getService().mSelectedDevice)); getService().mSelectedDevice = selectedDevice; + onSelectionUpdate(); } else { setContentView(R.layout.device_chooser); + mPairButton.setVisibility(View.GONE); setTitle(Html.fromHtml(getString(R.string.chooser_title, getCallingAppName()), 0)); mDeviceListView = findViewById(R.id.device_list); final DeviceDiscoveryService.DevicesAdapter adapter = getService().mDevicesAdapter; @@ -72,16 +77,12 @@ public class DeviceChooserActivity extends Activity { adapter.registerDataSetObserver(new DataSetObserver() { @Override public void onChanged() { - updatePairButtonEnabled(); + onSelectionUpdate(); } }); mDeviceListView.addFooterView(getProgressBar(), null, false); } - mPairButton = findViewById(R.id.button_pair); - mPairButton.setOnClickListener(v -> onPairTapped(getService().mSelectedDevice)); - updatePairButtonEnabled(); - mCancelButton = findViewById(R.id.button_cancel); mCancelButton.setOnClickListener(v -> cancel()); } @@ -134,15 +135,20 @@ public class DeviceChooserActivity extends Activity { return r.getDimensionPixelSize(R.dimen.padding); } - private void updatePairButtonEnabled() { - mPairButton.setEnabled(getService().mSelectedDevice != null); + private void onSelectionUpdate() { + DeviceFilterPair selectedDevice = getService().mSelectedDevice; + if (mPairButton.getVisibility() != View.VISIBLE && selectedDevice != null) { + onDeviceConfirmed(selectedDevice); + } else { + mPairButton.setEnabled(selectedDevice != null); + } } private DeviceDiscoveryService getService() { return DeviceDiscoveryService.sInstance; } - protected void onPairTapped(DeviceFilterPair selectedDevice) { + protected void onDeviceConfirmed(DeviceFilterPair selectedDevice) { getService().onDeviceSelected( getCallingPackage(), getDeviceMacAddress(selectedDevice.device)); setResult(RESULT_OK, -- 2.11.0