From 5d091ca8501fd0bf8eb0932acb5db02fe93fd6e9 Mon Sep 17 00:00:00 2001 From: Raphael Kim Date: Mon, 23 Jan 2023 08:56:49 -0800 Subject: [PATCH] Pre-emptively mark BLE device as lost if the bluetooth disconnect was detected on the same device. Bug: 241513315 Test: Manually tested atest CtsCompanionDeviceManagerCoreTestCases Change-Id: I8f5fc6c3776761707083c7a5e5a1a95ea5d88a8d --- .../companion/presence/CompanionDevicePresenceMonitor.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/companion/java/com/android/server/companion/presence/CompanionDevicePresenceMonitor.java b/services/companion/java/com/android/server/companion/presence/CompanionDevicePresenceMonitor.java index 1e9632402da03..d7a77cd071167 100644 --- a/services/companion/java/com/android/server/companion/presence/CompanionDevicePresenceMonitor.java +++ b/services/companion/java/com/android/server/companion/presence/CompanionDevicePresenceMonitor.java @@ -164,6 +164,12 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange @Override public void onBluetoothCompanionDeviceDisconnected(int associationId) { + // If disconnected device is also a BLE device, skip the 2-minute timer and mark it as gone. + boolean isConnectableBleDevice = mNearbyBleDevices.remove(associationId); + if (DEBUG && isConnectableBleDevice) { + Log.d(TAG, "Bluetooth device disconnect was detected." + + " Pre-emptively marking the BLE device as lost."); + } onDeviceGone(mConnectedBtDevices, associationId, /* sourceLoggingTag */ "bt"); }