summaryrefslogtreecommitdiff
path: root/framework/java/android/bluetooth/BluetoothAdapter.java
diff options
context:
space:
mode:
authorfredc <fredc@broadcom.com>2012-04-24 03:59:57 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-07-16 21:24:32 -0700
commitf1f5dde555c09019c0cedb05e844adf288677bc5 (patch)
tree93b57e8157845e1f6856c92e3c88d44bf1348daf /framework/java/android/bluetooth/BluetoothAdapter.java
parent797a7ba64e979ce8dff1f87f39521b6e1308e715 (diff)
Fixed issue with Settings app crashing after during on/off and unpair.
Fixed issue with BluetoothAdapter.getRemoteDevice() returning null. Change-Id: Ie86813532530a6b57bde1c430c7b4875ecc7354c
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothAdapter.java')
-rwxr-xr-xframework/java/android/bluetooth/BluetoothAdapter.java31
1 files changed, 24 insertions, 7 deletions
diff --git a/framework/java/android/bluetooth/BluetoothAdapter.java b/framework/java/android/bluetooth/BluetoothAdapter.java
index bde52eedbc..9f50c54276 100755
--- a/framework/java/android/bluetooth/BluetoothAdapter.java
+++ b/framework/java/android/bluetooth/BluetoothAdapter.java
@@ -31,6 +31,7 @@ import android.util.Log;
import android.util.Pair;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
@@ -407,10 +408,6 @@ public final class BluetoothAdapter {
* @throws IllegalArgumentException if address is invalid
*/
public BluetoothDevice getRemoteDevice(String address) {
- if (mService == null) {
- Log.e(TAG, "BT not enabled. Cannot create Remote Device");
- return null;
- }
return new BluetoothDevice(address);
}
@@ -504,7 +501,6 @@ public final class BluetoothAdapter {
* immediate error
*/
public boolean enable() {
-
boolean enabled = false;
try {
return mManagerService.enable();
@@ -1212,6 +1208,11 @@ public final class BluetoothAdapter {
if (DBG) Log.d(TAG, "onBluetoothServiceUp: " + bluetoothService);
synchronized (mManagerCallback) {
mService = bluetoothService;
+ for (IBluetoothManagerCallback cb : mBluetoothManagerCallbackList ){
+ try {
+ cb.onBluetoothServiceUp(bluetoothService);
+ } catch (Exception e) { Log.e(TAG,"",e);}
+ }
}
}
@@ -1219,6 +1220,11 @@ public final class BluetoothAdapter {
if (DBG) Log.d(TAG, "onBluetoothServiceDown: " + mService);
synchronized (mManagerCallback) {
mService = null;
+ for (IBluetoothManagerCallback cb : mBluetoothManagerCallbackList ){
+ try {
+ cb.onBluetoothServiceDown();
+ } catch (Exception e) { Log.e(TAG,"",e);}
+ }
}
}
};
@@ -1354,9 +1360,20 @@ public final class BluetoothAdapter {
return mManagerService;
}
- /*package*/ IBluetooth getBluetoothService() {
+ private ArrayList<IBluetoothManagerCallback> mBluetoothManagerCallbackList = new ArrayList<IBluetoothManagerCallback>();
+ //private IBluetoothStateChangeCallback mBluetoothStateChangeCallback;
+ /*package*/ IBluetooth getBluetoothService(IBluetoothManagerCallback cb) {
+ synchronized (mManagerCallback) {
+ if (!mBluetoothManagerCallbackList.contains(cb)) {
+ mBluetoothManagerCallbackList.add(cb);
+ }
+ }
+ return mService;
+ }
+
+ /*package*/ void removeServiceStateCallback(IBluetoothManagerCallback cb) {
synchronized (mManagerCallback) {
- return mService;
+ mBluetoothManagerCallbackList.remove(cb);
}
}
}