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

Side by Side Diff: device/bluetooth/bluetooth_device_android.cc

Issue 1256313002: bluetooth: android: Implement & test CreateGattConnection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Split tests up into smaller tests Created 5 years, 3 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 unified diff | Download patch
OLDNEW
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/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_array.h" 8 #include "base/android/jni_array.h"
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "device/bluetooth/bluetooth_adapter_android.h" 10 #include "device/bluetooth/bluetooth_adapter_android.h"
11 #include "jni/ChromeBluetoothDevice_jni.h" 11 #include "jni/ChromeBluetoothDevice_jni.h"
12 12
13 using base::android::AttachCurrentThread; 13 using base::android::AttachCurrentThread;
14 using base::android::AppendJavaStringArrayToStringVector; 14 using base::android::AppendJavaStringArrayToStringVector;
15 15
16 namespace device { 16 namespace device {
17 17
18 BluetoothDeviceAndroid* BluetoothDeviceAndroid::Create( 18 BluetoothDeviceAndroid* BluetoothDeviceAndroid::Create(
19 BluetoothAdapterAndroid* adapter, 19 BluetoothAdapterAndroid* adapter,
20 jobject bluetooth_device_wrapper) { // Java Type: bluetoothDeviceWrapper 20 jobject bluetooth_device_wrapper) { // Java Type: bluetoothDeviceWrapper
21 BluetoothDeviceAndroid* device = new BluetoothDeviceAndroid(adapter); 21 BluetoothDeviceAndroid* device = new BluetoothDeviceAndroid(adapter);
22 22
23 device->j_device_.Reset(Java_ChromeBluetoothDevice_create( 23 device->j_device_.Reset(Java_ChromeBluetoothDevice_create(
24 AttachCurrentThread(), bluetooth_device_wrapper)); 24 AttachCurrentThread(), reinterpret_cast<intptr_t>(device),
25 bluetooth_device_wrapper));
25 26
26 return device; 27 return device;
27 } 28 }
28 29
29 BluetoothDeviceAndroid::~BluetoothDeviceAndroid() { 30 BluetoothDeviceAndroid::~BluetoothDeviceAndroid() {
30 } 31 }
31 32
32 bool BluetoothDeviceAndroid::UpdateAdvertisedUUIDs(jobject advertised_uuids) { 33 bool BluetoothDeviceAndroid::UpdateAdvertisedUUIDs(jobject advertised_uuids) {
33 return Java_ChromeBluetoothDevice_updateAdvertisedUUIDs( 34 return Java_ChromeBluetoothDevice_updateAdvertisedUUIDs(
34 AttachCurrentThread(), j_device_.obj(), advertised_uuids); 35 AttachCurrentThread(), j_device_.obj(), advertised_uuids);
35 } 36 }
36 37
37 // static 38 // static
38 bool BluetoothDeviceAndroid::RegisterJNI(JNIEnv* env) { 39 bool BluetoothDeviceAndroid::RegisterJNI(JNIEnv* env) {
39 return RegisterNativesImpl(env); // Generated in ChromeBluetoothDevice_jni.h 40 return RegisterNativesImpl(env); // Generated in ChromeBluetoothDevice_jni.h
40 } 41 }
41 42
43 base::android::ScopedJavaLocalRef<jobject>
44 BluetoothDeviceAndroid::GetJavaObject() {
45 return base::android::ScopedJavaLocalRef<jobject>(j_device_);
46 }
47
42 uint32 BluetoothDeviceAndroid::GetBluetoothClass() const { 48 uint32 BluetoothDeviceAndroid::GetBluetoothClass() const {
43 return Java_ChromeBluetoothDevice_getBluetoothClass(AttachCurrentThread(), 49 return Java_ChromeBluetoothDevice_getBluetoothClass(AttachCurrentThread(),
44 j_device_.obj()); 50 j_device_.obj());
45 } 51 }
46 52
47 std::string BluetoothDeviceAndroid::GetAddress() const { 53 std::string BluetoothDeviceAndroid::GetAddress() const {
48 return ConvertJavaStringToUTF8(Java_ChromeBluetoothDevice_getAddress( 54 return ConvertJavaStringToUTF8(Java_ChromeBluetoothDevice_getAddress(
49 AttachCurrentThread(), j_device_.obj())); 55 AttachCurrentThread(), j_device_.obj()));
50 } 56 }
51 57
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 void BluetoothDeviceAndroid::RejectPairing() { 166 void BluetoothDeviceAndroid::RejectPairing() {
161 NOTIMPLEMENTED(); 167 NOTIMPLEMENTED();
162 } 168 }
163 169
164 void BluetoothDeviceAndroid::CancelPairing() { 170 void BluetoothDeviceAndroid::CancelPairing() {
165 NOTIMPLEMENTED(); 171 NOTIMPLEMENTED();
166 } 172 }
167 173
168 void BluetoothDeviceAndroid::Disconnect(const base::Closure& callback, 174 void BluetoothDeviceAndroid::Disconnect(const base::Closure& callback,
169 const ErrorCallback& error_callback) { 175 const ErrorCallback& error_callback) {
176 // TODO(scheib): Also update unit tests for BluetoothGattConnection.
170 NOTIMPLEMENTED(); 177 NOTIMPLEMENTED();
171 } 178 }
172 179
173 void BluetoothDeviceAndroid::Forget(const ErrorCallback& error_callback) { 180 void BluetoothDeviceAndroid::Forget(const ErrorCallback& error_callback) {
174 NOTIMPLEMENTED(); 181 NOTIMPLEMENTED();
175 } 182 }
176 183
177 void BluetoothDeviceAndroid::ConnectToService( 184 void BluetoothDeviceAndroid::ConnectToService(
178 const BluetoothUUID& uuid, 185 const BluetoothUUID& uuid,
179 const ConnectToServiceCallback& callback, 186 const ConnectToServiceCallback& callback,
180 const ConnectToServiceErrorCallback& error_callback) { 187 const ConnectToServiceErrorCallback& error_callback) {
181 NOTIMPLEMENTED(); 188 NOTIMPLEMENTED();
182 } 189 }
183 190
184 void BluetoothDeviceAndroid::ConnectToServiceInsecurely( 191 void BluetoothDeviceAndroid::ConnectToServiceInsecurely(
185 const BluetoothUUID& uuid, 192 const BluetoothUUID& uuid,
186 const ConnectToServiceCallback& callback, 193 const ConnectToServiceCallback& callback,
187 const ConnectToServiceErrorCallback& error_callback) { 194 const ConnectToServiceErrorCallback& error_callback) {
188 NOTIMPLEMENTED(); 195 NOTIMPLEMENTED();
189 } 196 }
190 197
198 void BluetoothDeviceAndroid::OnConnectionStateChange(JNIEnv* env,
199 jobject jcaller,
200 int32_t status,
201 bool connected) {
202 gatt_connected_ = connected;
203 if (gatt_connected_) {
204 DidConnectGatt();
205 } else {
206 // TODO(scheib) Create new BluetoothDevice::ConnectErrorCode enums for
207 // android values not yet represented. http://crbug.com/531058
208 switch (status) { // Constants are from android.bluetooth.BluetoothGatt.
209 case 0x00000101: // GATT_FAILURE
210 return DidFailToConnectGatt(ERROR_FAILED);
211 case 0x00000005: // GATT_INSUFFICIENT_AUTHENTICATION
212 return DidFailToConnectGatt(ERROR_AUTH_FAILED);
213 case 0x00000000: // GATT_SUCCESS
214 return DidDisconnectGatt();
215 default:
216 VLOG(1) << "Unhandled status: " << status;
217 return DidFailToConnectGatt(ERROR_UNKNOWN);
218 }
219 }
220 }
221
191 BluetoothDeviceAndroid::BluetoothDeviceAndroid(BluetoothAdapterAndroid* adapter) 222 BluetoothDeviceAndroid::BluetoothDeviceAndroid(BluetoothAdapterAndroid* adapter)
192 : BluetoothDevice(adapter) {} 223 : BluetoothDevice(adapter) {}
193 224
194 std::string BluetoothDeviceAndroid::GetDeviceName() const { 225 std::string BluetoothDeviceAndroid::GetDeviceName() const {
195 return ConvertJavaStringToUTF8(Java_ChromeBluetoothDevice_getDeviceName( 226 return ConvertJavaStringToUTF8(Java_ChromeBluetoothDevice_getDeviceName(
196 AttachCurrentThread(), j_device_.obj())); 227 AttachCurrentThread(), j_device_.obj()));
197 } 228 }
198 229
199 void BluetoothDeviceAndroid::CreateGattConnectionImpl() { 230 void BluetoothDeviceAndroid::CreateGattConnectionImpl() {
200 // Implemented in following patch https://codereview.chromium.org/1256313002 231 Java_ChromeBluetoothDevice_createGattConnectionImpl(
201 NOTIMPLEMENTED(); 232 AttachCurrentThread(), j_device_.obj(),
202 DidFailToConnectGatt(ERROR_UNKNOWN); 233 base::android::GetApplicationContext());
203 } 234 }
204 235
205 void BluetoothDeviceAndroid::DisconnectGatt() { 236 void BluetoothDeviceAndroid::DisconnectGatt() {
206 // Implemented in following patch https://codereview.chromium.org/1256313002 237 Java_ChromeBluetoothDevice_disconnectGatt(AttachCurrentThread(),
207 NOTIMPLEMENTED(); 238 j_device_.obj());
208 } 239 }
209 240
210 } // namespace device 241 } // namespace device
OLDNEW
« no previous file with comments | « device/bluetooth/bluetooth_device_android.h ('k') | device/bluetooth/bluetooth_device_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698