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

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

Issue 1215303006: bluetooth: android: Initial BluetoothDeviceAndroid implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bta-discovery-
Patch Set: Merge TOT Created 5 years, 5 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/ChromeBluetoothAdapter.java
diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
index a29c9d8c2515d0af3f7709e50ec581becd3218f2..ff864fd953449e1bce9a6fcea7bde94784ec9d10 100644
--- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
+++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java
@@ -8,6 +8,7 @@ import android.annotation.TargetApi;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.le.ScanSettings;
import android.os.Build;
+import android.os.ParcelUuid;
import org.chromium.base.CalledByNative;
import org.chromium.base.JNINamespace;
@@ -19,6 +20,8 @@ import java.util.List;
* Exposes android.bluetooth.BluetoothAdapter as necessary for C++
* device::BluetoothAdapterAndroid, which implements the cross platform
* device::BluetoothAdapter.
+ *
+ * Lifetime is controlled by device::BluetoothAdapterAndroid.
*/
@JNINamespace("device")
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@@ -65,8 +68,9 @@ final class ChromeBluetoothAdapter {
// BluetoothAdapterAndroid methods implemented in java:
// Implements BluetoothAdapterAndroid::Create.
- // 'Object' type must be used because inner class Wrappers.BluetoothAdapterWrapper reference is
- // not handled by jni_generator.py JavaToJni. http://crbug.com/505554
+ // 'Object' type must be used for |adapterWrapper| because inner class
+ // Wrappers.BluetoothAdapterWrapper reference is not handled by jni_generator.py JavaToJni.
+ // http://crbug.com/505554
@CalledByNative
private static ChromeBluetoothAdapter create(
long nativeBluetoothAdapterAndroid, Object adapterWrapper) {
@@ -217,6 +221,11 @@ final class ChromeBluetoothAdapter {
public void onScanResult(int callbackType, Wrappers.ScanResultWrapper result) {
Log.v(TAG, "onScanResult %d %s %s", callbackType, result.getDevice().getAddress(),
result.getDevice().getName());
+
+ List<ParcelUuid> uuids = result.getScanRecord_getServiceUuids();
+
+ nativeCreateOrUpdateDeviceOnScan(mNativeBluetoothAdapterAndroid,
+ result.getDevice().getAddress(), result.getDevice(), uuids);
}
@Override
@@ -232,4 +241,11 @@ final class ChromeBluetoothAdapter {
// Binds to BluetoothAdapterAndroid::OnScanFailed.
private native void nativeOnScanFailed(long nativeBluetoothAdapterAndroid);
+
+ // Binds to BluetoothAdapterAndroid::CreateOrUpdateDeviceOnScan.
+ // 'Object' type must be used for |bluetoothDeviceWrapper| because inner class
+ // Wrappers.BluetoothDeviceWrapper reference is not handled by jni_generator.py JavaToJni.
+ // http://crbug.com/505554
+ private native void nativeCreateOrUpdateDeviceOnScan(long nativeBluetoothAdapterAndroid,
+ String address, Object bluetoothDeviceWrapper, List<ParcelUuid> advertisedUuids);
}

Powered by Google App Engine
This is Rietveld 408576698