Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2016)

Unified Diff: device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java

Issue 1610053005: bluetooth: android: Fix a couple of crashes when adapter is turned on/off. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java
index d53e233a287494ab8e05cb6583106e8b51f2bd6e..9bcb3f8f3b04b2b31f92d0e5819b62d5ced034fc 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java
@@ -46,6 +46,8 @@ import java.util.UUID;
class Wrappers {
private static final String TAG = "Bluetooth";
+ public static final int DEVICE_CLASS_UNSPECIFIED = 0x1F00;
+
/**
* Wraps android.bluetooth.BluetoothAdapter.
*/
@@ -94,8 +96,13 @@ class Wrappers {
Log.i(TAG, "BluetoothAdapterWrapper.create failed: Default adapter not found.");
return null;
} else {
- return new BluetoothAdapterWrapper(adapter, new ContextWrapper(context),
- new BluetoothLeScannerWrapper(adapter.getBluetoothLeScanner()));
+ BluetoothLeScanner scanner = adapter.getBluetoothLeScanner();
scheib 2016/01/21 05:33:51 In my patch you'll see that I moved the code for o
+ if (scanner != null) {
+ return new BluetoothAdapterWrapper(adapter, new ContextWrapper(context),
+ new BluetoothLeScannerWrapper(scanner));
+ } else {
+ return null;
+ }
}
}
@@ -171,7 +178,6 @@ class Wrappers {
ForwardScanCallbackToWrapper callbackForwarder =
new ForwardScanCallbackToWrapper(callback);
mCallbacks.put(callback, callbackForwarder);
-
mScanner.startScan(filters, settings, callbackForwarder);
}
@@ -276,6 +282,11 @@ class Wrappers {
}
public int getBluetoothClass_getDeviceClass() {
+ if (mDevice == null || mDevice.getBluetoothClass() == null) {
scheib 2016/01/21 05:33:51 OK, no test needed here because we don't Fake getB
+ // BluetoothDevice.getBluetoothClass() returns null if adapter has been powered off.
+ // Return DEVICE_CLASS_UNSPECIFIED in these cases.
+ return DEVICE_CLASS_UNSPECIFIED;
+ }
return mDevice.getBluetoothClass().getDeviceClass();
}

Powered by Google App Engine
This is Rietveld 408576698