From: Ajay Panicker Date: Fri, 21 Oct 2016 23:22:11 +0000 (-0700) Subject: Prevent bonded device from being removed from the property map X-Git-Tag: android-7.1.2_r17~19^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c4b1ccb468;p=android-x86%2Fpackages-apps-Bluetooth.git Prevent bonded device from being removed from the property map Bug: 31947953 Test: Manual Change-Id: Ia2d25b305c07949a9251af83e855db4511ff887f --- diff --git a/src/com/android/bluetooth/btservice/RemoteDevices.java b/src/com/android/bluetooth/btservice/RemoteDevices.java index 7d3d3190..bb723a79 100644 --- a/src/com/android/bluetooth/btservice/RemoteDevices.java +++ b/src/com/android/bluetooth/btservice/RemoteDevices.java @@ -34,7 +34,7 @@ import java.util.LinkedList; import java.util.Queue; final class RemoteDevices { - private static final boolean DBG = true; + private static final boolean DBG = false; private static final String TAG = "BluetoothRemoteDevices"; // Maximum number of device properties to remember @@ -96,10 +96,15 @@ final class RemoteDevices { prop.mAddress = address; String key = Utils.getAddressStringFromByte(address); DeviceProperties pv = mDevices.put(key, prop); + if (pv == null) { mDeviceQueue.offer(key); if (mDeviceQueue.size() > MAX_DEVICE_QUEUE_SIZE) { String deleteKey = mDeviceQueue.poll(); + for (BluetoothDevice device : mAdapterService.getBondedDevices()) { + if (device.getAddress().equals(deleteKey)) return prop; + } + debugLog("Removing device " + deleteKey + " from property map"); mDevices.remove(deleteKey); } }