From 9519ce75f15ba287a641166c1b7ed10f2aa73f74 Mon Sep 17 00:00:00 2001 From: Jaikumar Ganesh Date: Tue, 8 Sep 2009 21:37:32 -0700 Subject: [PATCH] Query for all properties if a property change is received and cache is empty. --- core/java/android/server/BluetoothEventLoop.java | 5 +++++ core/java/android/server/BluetoothService.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 8cef3a20eeba8..e341b7403b9ea 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -240,6 +240,11 @@ class BluetoothEventLoop { } /*package*/ void onPropertyChanged(String[] propValues) { + if (mBluetoothService.isAdapterPropertiesEmpty()) { + // We have got a property change before + // we filled up our cache. + mBluetoothService.getAllProperties(); + } String name = propValues[0]; if (name.equals("Name")) { Intent intent = new Intent(BluetoothIntent.NAME_CHANGED_ACTION); diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java index b16885000f527..5fe0d4e12cb46 100644 --- a/core/java/android/server/BluetoothService.java +++ b/core/java/android/server/BluetoothService.java @@ -538,6 +538,10 @@ public class BluetoothService extends IBluetooth.Stub { } } + /*package*/ synchronized boolean isAdapterPropertiesEmpty() { + return mAdapterProperties.isEmpty(); + } + /*package*/synchronized void getAllProperties() { mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission"); mAdapterProperties.clear();