OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "device/bluetooth/bluetooth_device_android.h" | 5 #include "device/bluetooth/bluetooth_device_android.h" |
6 | 6 |
7 #include "base/android/context_utils.h" | 7 #include "base/android/context_utils.h" |
8 #include "base/android/jni_android.h" | 8 #include "base/android/jni_android.h" |
9 #include "base/android/jni_array.h" | 9 #include "base/android/jni_array.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 | 41 |
42 device->j_device_.Reset(Java_ChromeBluetoothDevice_create( | 42 device->j_device_.Reset(Java_ChromeBluetoothDevice_create( |
43 AttachCurrentThread(), reinterpret_cast<intptr_t>(device), | 43 AttachCurrentThread(), reinterpret_cast<intptr_t>(device), |
44 bluetooth_device_wrapper)); | 44 bluetooth_device_wrapper)); |
45 | 45 |
46 return device; | 46 return device; |
47 } | 47 } |
48 | 48 |
49 BluetoothDeviceAndroid::~BluetoothDeviceAndroid() { | 49 BluetoothDeviceAndroid::~BluetoothDeviceAndroid() { |
50 Java_ChromeBluetoothDevice_onBluetoothDeviceAndroidDestruction( | 50 Java_ChromeBluetoothDevice_onBluetoothDeviceAndroidDestruction( |
51 AttachCurrentThread(), j_device_.obj()); | 51 AttachCurrentThread(), j_device_); |
52 } | 52 } |
53 | 53 |
54 void BluetoothDeviceAndroid::UpdateAdvertisedUUIDs( | 54 void BluetoothDeviceAndroid::UpdateAdvertisedUUIDs( |
55 jobjectArray advertised_uuids) { | 55 jobjectArray advertised_uuids) { |
56 JNIEnv* env = AttachCurrentThread(); | 56 JNIEnv* env = AttachCurrentThread(); |
57 std::vector<std::string> uuid_strings; | 57 std::vector<std::string> uuid_strings; |
58 AppendJavaStringArrayToStringVector(env, advertised_uuids, &uuid_strings); | 58 AppendJavaStringArrayToStringVector(env, advertised_uuids, &uuid_strings); |
59 | 59 |
60 advertised_uuids_ = UUIDList(uuid_strings.begin(), uuid_strings.end()); | 60 advertised_uuids_ = UUIDList(uuid_strings.begin(), uuid_strings.end()); |
61 } | 61 } |
62 | 62 |
63 // static | 63 // static |
64 bool BluetoothDeviceAndroid::RegisterJNI(JNIEnv* env) { | 64 bool BluetoothDeviceAndroid::RegisterJNI(JNIEnv* env) { |
65 return RegisterNativesImpl(env); // Generated in ChromeBluetoothDevice_jni.h | 65 return RegisterNativesImpl(env); // Generated in ChromeBluetoothDevice_jni.h |
66 } | 66 } |
67 | 67 |
68 base::android::ScopedJavaLocalRef<jobject> | 68 base::android::ScopedJavaLocalRef<jobject> |
69 BluetoothDeviceAndroid::GetJavaObject() { | 69 BluetoothDeviceAndroid::GetJavaObject() { |
70 return base::android::ScopedJavaLocalRef<jobject>(j_device_); | 70 return base::android::ScopedJavaLocalRef<jobject>(j_device_); |
71 } | 71 } |
72 | 72 |
73 uint32_t BluetoothDeviceAndroid::GetBluetoothClass() const { | 73 uint32_t BluetoothDeviceAndroid::GetBluetoothClass() const { |
74 return Java_ChromeBluetoothDevice_getBluetoothClass(AttachCurrentThread(), | 74 return Java_ChromeBluetoothDevice_getBluetoothClass(AttachCurrentThread(), |
75 j_device_.obj()); | 75 j_device_); |
76 } | 76 } |
77 | 77 |
78 std::string BluetoothDeviceAndroid::GetAddress() const { | 78 std::string BluetoothDeviceAndroid::GetAddress() const { |
79 return ConvertJavaStringToUTF8(Java_ChromeBluetoothDevice_getAddress( | 79 return ConvertJavaStringToUTF8( |
80 AttachCurrentThread(), j_device_.obj())); | 80 Java_ChromeBluetoothDevice_getAddress(AttachCurrentThread(), j_device_)); |
81 } | 81 } |
82 | 82 |
83 BluetoothDevice::VendorIDSource BluetoothDeviceAndroid::GetVendorIDSource() | 83 BluetoothDevice::VendorIDSource BluetoothDeviceAndroid::GetVendorIDSource() |
84 const { | 84 const { |
85 // Android API does not provide Vendor ID. | 85 // Android API does not provide Vendor ID. |
86 return VENDOR_ID_UNKNOWN; | 86 return VENDOR_ID_UNKNOWN; |
87 } | 87 } |
88 | 88 |
89 uint16_t BluetoothDeviceAndroid::GetVendorID() const { | 89 uint16_t BluetoothDeviceAndroid::GetVendorID() const { |
90 // Android API does not provide Vendor ID. | 90 // Android API does not provide Vendor ID. |
(...skipping 11 matching lines...) Expand all Loading... |
102 } | 102 } |
103 | 103 |
104 uint16_t BluetoothDeviceAndroid::GetAppearance() const { | 104 uint16_t BluetoothDeviceAndroid::GetAppearance() const { |
105 // TODO(crbug.com/588083): Implementing GetAppearance() | 105 // TODO(crbug.com/588083): Implementing GetAppearance() |
106 // on mac, win, and android platforms for chrome | 106 // on mac, win, and android platforms for chrome |
107 NOTIMPLEMENTED(); | 107 NOTIMPLEMENTED(); |
108 return 0; | 108 return 0; |
109 } | 109 } |
110 | 110 |
111 base::Optional<std::string> BluetoothDeviceAndroid::GetName() const { | 111 base::Optional<std::string> BluetoothDeviceAndroid::GetName() const { |
112 auto name = Java_ChromeBluetoothDevice_getName(AttachCurrentThread(), | 112 auto name = |
113 j_device_.obj()); | 113 Java_ChromeBluetoothDevice_getName(AttachCurrentThread(), j_device_); |
114 if (name.is_null()) | 114 if (name.is_null()) |
115 return base::nullopt; | 115 return base::nullopt; |
116 return ConvertJavaStringToUTF8(name); | 116 return ConvertJavaStringToUTF8(name); |
117 } | 117 } |
118 | 118 |
119 bool BluetoothDeviceAndroid::IsPaired() const { | 119 bool BluetoothDeviceAndroid::IsPaired() const { |
120 return Java_ChromeBluetoothDevice_isPaired(AttachCurrentThread(), | 120 return Java_ChromeBluetoothDevice_isPaired(AttachCurrentThread(), j_device_); |
121 j_device_.obj()); | |
122 } | 121 } |
123 | 122 |
124 bool BluetoothDeviceAndroid::IsConnected() const { | 123 bool BluetoothDeviceAndroid::IsConnected() const { |
125 return IsGattConnected(); | 124 return IsGattConnected(); |
126 } | 125 } |
127 | 126 |
128 bool BluetoothDeviceAndroid::IsGattConnected() const { | 127 bool BluetoothDeviceAndroid::IsGattConnected() const { |
129 return gatt_connected_; | 128 return gatt_connected_; |
130 } | 129 } |
131 | 130 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 instance_id_string, j_device_.obj())); | 275 instance_id_string, j_device_.obj())); |
277 | 276 |
278 adapter_->NotifyGattServiceAdded(service_iterator->second); | 277 adapter_->NotifyGattServiceAdded(service_iterator->second); |
279 } | 278 } |
280 | 279 |
281 BluetoothDeviceAndroid::BluetoothDeviceAndroid(BluetoothAdapterAndroid* adapter) | 280 BluetoothDeviceAndroid::BluetoothDeviceAndroid(BluetoothAdapterAndroid* adapter) |
282 : BluetoothDevice(adapter) {} | 281 : BluetoothDevice(adapter) {} |
283 | 282 |
284 void BluetoothDeviceAndroid::CreateGattConnectionImpl() { | 283 void BluetoothDeviceAndroid::CreateGattConnectionImpl() { |
285 Java_ChromeBluetoothDevice_createGattConnectionImpl( | 284 Java_ChromeBluetoothDevice_createGattConnectionImpl( |
286 AttachCurrentThread(), j_device_.obj(), | 285 AttachCurrentThread(), j_device_, base::android::GetApplicationContext()); |
287 base::android::GetApplicationContext()); | |
288 } | 286 } |
289 | 287 |
290 void BluetoothDeviceAndroid::DisconnectGatt() { | 288 void BluetoothDeviceAndroid::DisconnectGatt() { |
291 Java_ChromeBluetoothDevice_disconnectGatt(AttachCurrentThread(), | 289 Java_ChromeBluetoothDevice_disconnectGatt(AttachCurrentThread(), j_device_); |
292 j_device_.obj()); | |
293 } | 290 } |
294 | 291 |
295 } // namespace device | 292 } // namespace device |
OLD | NEW |