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/usb/usb_device_android.h" | 5 #include "device/usb/usb_device_android.h" |
6 | 6 |
7 #include "base/android/build_info.h" | 7 #include "base/android/build_info.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 JNIEnv* env, | 28 JNIEnv* env, |
29 base::WeakPtr<UsbServiceAndroid> service, | 29 base::WeakPtr<UsbServiceAndroid> service, |
30 const JavaRef<jobject>& usb_device) { | 30 const JavaRef<jobject>& usb_device) { |
31 ScopedJavaLocalRef<jobject> wrapper = | 31 ScopedJavaLocalRef<jobject> wrapper = |
32 Java_ChromeUsbDevice_create(env, usb_device); | 32 Java_ChromeUsbDevice_create(env, usb_device); |
33 uint16_t device_version = 0; | 33 uint16_t device_version = 0; |
34 if (base::android::BuildInfo::GetInstance()->sdk_int() >= 23) | 34 if (base::android::BuildInfo::GetInstance()->sdk_int() >= 23) |
35 device_version = Java_ChromeUsbDevice_getDeviceVersion(env, wrapper); | 35 device_version = Java_ChromeUsbDevice_getDeviceVersion(env, wrapper); |
36 base::string16 manufacturer_string, product_string, serial_number; | 36 base::string16 manufacturer_string, product_string, serial_number; |
37 if (base::android::BuildInfo::GetInstance()->sdk_int() >= 21) { | 37 if (base::android::BuildInfo::GetInstance()->sdk_int() >= 21) { |
38 manufacturer_string = ConvertJavaStringToUTF16( | 38 ScopedJavaLocalRef<jstring> manufacturer_jstring = |
39 env, Java_ChromeUsbDevice_getManufacturerName(env, wrapper)); | 39 Java_ChromeUsbDevice_getManufacturerName(env, wrapper); |
40 product_string = ConvertJavaStringToUTF16( | 40 if (!manufacturer_jstring.is_null()) |
41 env, Java_ChromeUsbDevice_getProductName(env, wrapper)); | 41 manufacturer_string = ConvertJavaStringToUTF16(env, manufacturer_jstring); |
42 serial_number = ConvertJavaStringToUTF16( | 42 ScopedJavaLocalRef<jstring> product_jstring = |
43 env, Java_ChromeUsbDevice_getSerialNumber(env, wrapper)); | 43 Java_ChromeUsbDevice_getProductName(env, wrapper); |
| 44 if (!product_jstring.is_null()) |
| 45 product_string = ConvertJavaStringToUTF16(env, product_jstring); |
| 46 ScopedJavaLocalRef<jstring> serial_jstring = |
| 47 Java_ChromeUsbDevice_getSerialNumber(env, wrapper); |
| 48 if (!serial_jstring.is_null()) |
| 49 serial_number = ConvertJavaStringToUTF16(env, serial_jstring); |
44 } | 50 } |
45 return make_scoped_refptr(new UsbDeviceAndroid( | 51 return make_scoped_refptr(new UsbDeviceAndroid( |
46 env, service, | 52 env, service, |
47 0x0200, // USB protocol version, not provided by the Android API. | 53 0x0200, // USB protocol version, not provided by the Android API. |
48 Java_ChromeUsbDevice_getDeviceClass(env, wrapper), | 54 Java_ChromeUsbDevice_getDeviceClass(env, wrapper), |
49 Java_ChromeUsbDevice_getDeviceSubclass(env, wrapper), | 55 Java_ChromeUsbDevice_getDeviceSubclass(env, wrapper), |
50 Java_ChromeUsbDevice_getDeviceProtocol(env, wrapper), | 56 Java_ChromeUsbDevice_getDeviceProtocol(env, wrapper), |
51 Java_ChromeUsbDevice_getVendorId(env, wrapper), | 57 Java_ChromeUsbDevice_getVendorId(env, wrapper), |
52 Java_ChromeUsbDevice_getProductId(env, wrapper), device_version, | 58 Java_ChromeUsbDevice_getProductId(env, wrapper), device_version, |
53 manufacturer_string, product_string, serial_number, wrapper)); | 59 manufacturer_string, product_string, serial_number, wrapper)); |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 scoped_refptr<UsbDeviceHandle> device_handle, | 203 scoped_refptr<UsbDeviceHandle> device_handle, |
198 const GURL& landing_page) { | 204 const GURL& landing_page) { |
199 if (landing_page.is_valid()) | 205 if (landing_page.is_valid()) |
200 webusb_landing_page_ = landing_page; | 206 webusb_landing_page_ = landing_page; |
201 | 207 |
202 device_handle->Close(); | 208 device_handle->Close(); |
203 CallRequestPermissionCallbacks(true); | 209 CallRequestPermissionCallbacks(true); |
204 } | 210 } |
205 | 211 |
206 } // namespace device | 212 } // namespace device |
OLD | NEW |