diff options
Diffstat (limited to 'core/java/android/server/BluetoothDeviceService.java')
-rw-r--r-- | core/java/android/server/BluetoothDeviceService.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/java/android/server/BluetoothDeviceService.java b/core/java/android/server/BluetoothDeviceService.java index dcaede2..75c590d 100644 --- a/core/java/android/server/BluetoothDeviceService.java +++ b/core/java/android/server/BluetoothDeviceService.java @@ -809,7 +809,16 @@ public class BluetoothDeviceService extends IBluetoothDevice.Stub { } /* package */ synchronized void addRemoteDeviceProperties(String address, String[] properties) { - Map<String, String> propertyValues = new HashMap<String, String>(); + /* + * We get a DeviceFound signal every time RSSI changes or name changes. + * Don't create a new Map object every time */ + Map<String, String> propertyValues = mRemoteDeviceProperties.get(address); + if (propertyValues != null) { + propertyValues.clear(); + } else { + propertyValues = new HashMap<String, String>(); + } + for (int i = 0; i < properties.length; i+=2) { String value = null; if (propertyValues.containsKey(properties[i])) { |