diff options
author | 2024-06-18 23:47:07 +0000 | |
---|---|---|
committer | 2024-06-18 23:47:07 +0000 | |
commit | acb871e6327247d3ae56950471c4e71aa365aaac (patch) | |
tree | e98093a61dbb523bf1e626da057424c1d09a14ca /packages/CompanionDeviceManager/src | |
parent | 12e9cc95423657f79ac2885ef35a8667159f2c7d (diff) | |
parent | 98cbbae537632142d0b53c290014268c365de2c0 (diff) |
Merge "Fix CDM discovery timeout" into main
Diffstat (limited to 'packages/CompanionDeviceManager/src')
2 files changed, 12 insertions, 5 deletions
diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java index 864de87b918d..5770c5104dee 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionAssociationActivity.java @@ -27,6 +27,8 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE import static com.android.companiondevicemanager.CompanionDeviceDiscoveryService.DiscoveryState; import static com.android.companiondevicemanager.CompanionDeviceDiscoveryService.DiscoveryState.FINISHED_TIMEOUT; +import static com.android.companiondevicemanager.CompanionDeviceDiscoveryService.LOCK; +import static com.android.companiondevicemanager.CompanionDeviceDiscoveryService.sDiscoveryStarted; import static com.android.companiondevicemanager.CompanionDeviceResources.PROFILE_ICONS; import static com.android.companiondevicemanager.CompanionDeviceResources.PROFILE_NAMES; import static com.android.companiondevicemanager.CompanionDeviceResources.PROFILE_PERMISSIONS; @@ -326,8 +328,12 @@ public class CompanionAssociationActivity extends FragmentActivity implements private void onDiscoveryStateChanged(DiscoveryState newState) { if (newState == FINISHED_TIMEOUT && CompanionDeviceDiscoveryService.getScanResult().getValue().isEmpty()) { - cancel(/* discoveryTimeOut */ true, - /* userRejected */ false, /* internalError */ false); + synchronized (LOCK) { + if (sDiscoveryStarted) { + cancel(/* discoveryTimeOut */ true, + /* userRejected */ false, /* internalError */ false); + } + } } } diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java index 2a8ce87b7bf6..6c1bc4ededce 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/CompanionDeviceDiscoveryService.java @@ -90,9 +90,6 @@ public class CompanionDeviceDiscoveryService extends Service { new MutableLiveData<>(Collections.emptyList()); private static MutableLiveData<DiscoveryState> sStateLiveData = new MutableLiveData<>(DiscoveryState.NOT_STARTED); - private static final Object LOCK = new Object(); - @GuardedBy("LOCK") - private static boolean sDiscoveryStarted = false; private BluetoothManager mBtManager; private BluetoothAdapter mBtAdapter; @@ -109,6 +106,10 @@ public class CompanionDeviceDiscoveryService extends Service { private boolean mStopAfterFirstMatch; + static final Object LOCK = new Object(); + @GuardedBy("LOCK") + static boolean sDiscoveryStarted = false; + /** * A state enum for devices' discovery. */ |