From 395d1023660c5caedf7888def17f8ad826f51bf8 Mon Sep 17 00:00:00 2001 From: Jaikumar Ganesh Date: Fri, 19 Jun 2009 16:12:31 -0700 Subject: Send the name of the device in the DeviceFound signal. When name resolution is done, we get a DeviceFound signal. Settings app was not updating the cache. --- core/java/android/server/BluetoothDeviceService.java | 11 ++++++++++- core/java/android/server/BluetoothEventLoop.java | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'core/java/android/server') 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 propertyValues = new HashMap(); + /* + * We get a DeviceFound signal every time RSSI changes or name changes. + * Don't create a new Map object every time */ + Map propertyValues = mRemoteDeviceProperties.get(address); + if (propertyValues != null) { + propertyValues.clear(); + } else { + propertyValues = new HashMap(); + } + for (int i = 0; i < properties.length; i+=2) { String value = null; if (propertyValues.containsKey(properties[i])) { diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 00c13b7..ed66dce 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -130,12 +130,14 @@ class BluetoothEventLoop { mBluetoothService.addRemoteDeviceProperties(address, properties); String rssi = mBluetoothService.getRemoteDeviceProperty(address, "RSSI"); String classValue = mBluetoothService.getRemoteDeviceProperty(address, "Class"); + String name = mBluetoothService.getRemoteDeviceProperty(address, "Name"); if (rssi != null && classValue != null) { Intent intent = new Intent(BluetoothIntent.REMOTE_DEVICE_FOUND_ACTION); intent.putExtra(BluetoothIntent.ADDRESS, address); - intent.putExtra(BluetoothIntent.CLASS, classValue); + intent.putExtra(BluetoothIntent.CLASS, Integer.valueOf(classValue)); intent.putExtra(BluetoothIntent.RSSI, (short)Integer.valueOf(rssi).intValue()); + intent.putExtra(BluetoothIntent.NAME, name); mContext.sendBroadcast(intent, BLUETOOTH_PERM); } else { -- cgit v1.1