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

Side by Side Diff: device/usb/android/java/src/org/chromium/device/usb/ChromeUsbService.java

Issue 2847523002: Android: Remove GetApplicationContext part 4 (Closed)
Patch Set: Rebase and fix build Created 3 years, 7 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
« no previous file with comments | « device/sensors/sensor_manager_android.cc ('k') | device/usb/usb_service_android.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 package org.chromium.device.usb; 5 package org.chromium.device.usb;
6 6
7 import android.app.PendingIntent; 7 import android.app.PendingIntent;
8 import android.content.BroadcastReceiver; 8 import android.content.BroadcastReceiver;
9 import android.content.Context; 9 import android.content.Context;
10 import android.content.Intent; 10 import android.content.Intent;
11 import android.content.IntentFilter; 11 import android.content.IntentFilter;
12 import android.hardware.usb.UsbDevice; 12 import android.hardware.usb.UsbDevice;
13 import android.hardware.usb.UsbDeviceConnection; 13 import android.hardware.usb.UsbDeviceConnection;
14 import android.hardware.usb.UsbManager; 14 import android.hardware.usb.UsbManager;
15 15
16 import org.chromium.base.ContextUtils;
16 import org.chromium.base.Log; 17 import org.chromium.base.Log;
17 import org.chromium.base.annotations.CalledByNative; 18 import org.chromium.base.annotations.CalledByNative;
18 import org.chromium.base.annotations.JNINamespace; 19 import org.chromium.base.annotations.JNINamespace;
19 20
20 import java.util.HashMap; 21 import java.util.HashMap;
21 22
22 /** 23 /**
23 * Exposes android.hardware.usb.UsbManager as necessary for C++ 24 * Exposes android.hardware.usb.UsbManager as necessary for C++
24 * device::UsbServiceAndroid. 25 * device::UsbServiceAndroid.
25 * 26 *
26 * Lifetime is controlled by device::UsbServiceAndroid. 27 * Lifetime is controlled by device::UsbServiceAndroid.
27 */ 28 */
28 @JNINamespace("device") 29 @JNINamespace("device")
29 final class ChromeUsbService { 30 final class ChromeUsbService {
30 private static final String TAG = "Usb"; 31 private static final String TAG = "Usb";
31 private static final String ACTION_USB_PERMISSION = "org.chromium.device.ACT ION_USB_PERMISSION"; 32 private static final String ACTION_USB_PERMISSION = "org.chromium.device.ACT ION_USB_PERMISSION";
32 33
33 Context mContext;
34 long mUsbServiceAndroid; 34 long mUsbServiceAndroid;
35 UsbManager mUsbManager; 35 UsbManager mUsbManager;
36 BroadcastReceiver mUsbDeviceReceiver; 36 BroadcastReceiver mUsbDeviceReceiver;
37 37
38 private ChromeUsbService(Context context, long usbServiceAndroid) { 38 private ChromeUsbService(long usbServiceAndroid) {
39 mContext = context;
40 mUsbServiceAndroid = usbServiceAndroid; 39 mUsbServiceAndroid = usbServiceAndroid;
41 mUsbManager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE ); 40 mUsbManager = (UsbManager) ContextUtils.getApplicationContext().getSyste mService(
41 Context.USB_SERVICE);
42 registerForUsbDeviceIntentBroadcast(); 42 registerForUsbDeviceIntentBroadcast();
43 Log.v(TAG, "ChromeUsbService created."); 43 Log.v(TAG, "ChromeUsbService created.");
44 } 44 }
45 45
46 @CalledByNative 46 @CalledByNative
47 private static ChromeUsbService create(Context context, long usbServiceAndro id) { 47 private static ChromeUsbService create(long usbServiceAndroid) {
48 return new ChromeUsbService(context, usbServiceAndroid); 48 return new ChromeUsbService(usbServiceAndroid);
49 } 49 }
50 50
51 @CalledByNative 51 @CalledByNative
52 private Object[] getDevices() { 52 private Object[] getDevices() {
53 HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList(); 53 HashMap<String, UsbDevice> deviceList = mUsbManager.getDeviceList();
54 return deviceList.values().toArray(); 54 return deviceList.values().toArray();
55 } 55 }
56 56
57 @CalledByNative 57 @CalledByNative
58 private UsbDeviceConnection openDevice(ChromeUsbDevice wrapper) { 58 private UsbDeviceConnection openDevice(ChromeUsbDevice wrapper) {
59 UsbDevice device = wrapper.getDevice(); 59 UsbDevice device = wrapper.getDevice();
60 return mUsbManager.openDevice(device); 60 return mUsbManager.openDevice(device);
61 } 61 }
62 62
63 @CalledByNative 63 @CalledByNative
64 private void requestDevicePermission(ChromeUsbDevice wrapper, long nativeCal lback) { 64 private void requestDevicePermission(ChromeUsbDevice wrapper, long nativeCal lback) {
65 UsbDevice device = wrapper.getDevice(); 65 UsbDevice device = wrapper.getDevice();
66 if (mUsbManager.hasPermission(device)) { 66 if (mUsbManager.hasPermission(device)) {
67 nativeDevicePermissionRequestComplete(mUsbServiceAndroid, device.get DeviceId(), true); 67 nativeDevicePermissionRequestComplete(mUsbServiceAndroid, device.get DeviceId(), true);
68 } else { 68 } else {
69 PendingIntent intent = 69 PendingIntent intent = PendingIntent.getBroadcast(
70 PendingIntent.getBroadcast(mContext, 0, new Intent(ACTION_US B_PERMISSION), 0); 70 ContextUtils.getApplicationContext(), 0, new Intent(ACTION_U SB_PERMISSION), 0);
71 mUsbManager.requestPermission(wrapper.getDevice(), intent); 71 mUsbManager.requestPermission(wrapper.getDevice(), intent);
72 } 72 }
73 } 73 }
74 74
75 @CalledByNative 75 @CalledByNative
76 private void close() { 76 private void close() {
77 unregisterForUsbDeviceIntentBroadcast(); 77 unregisterForUsbDeviceIntentBroadcast();
78 } 78 }
79 79
80 private native void nativeDeviceAttached(long nativeUsbServiceAndroid, UsbDe vice device); 80 private native void nativeDeviceAttached(long nativeUsbServiceAndroid, UsbDe vice device);
(...skipping 16 matching lines...) Expand all
97 nativeDevicePermissionRequestComplete(mUsbServiceAndroid, de vice.getDeviceId(), 97 nativeDevicePermissionRequestComplete(mUsbServiceAndroid, de vice.getDeviceId(),
98 intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_G RANTED, false)); 98 intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_G RANTED, false));
99 } 99 }
100 } 100 }
101 }; 101 };
102 102
103 IntentFilter filter = new IntentFilter(); 103 IntentFilter filter = new IntentFilter();
104 filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED); 104 filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
105 filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED); 105 filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
106 filter.addAction(ACTION_USB_PERMISSION); 106 filter.addAction(ACTION_USB_PERMISSION);
107 mContext.registerReceiver(mUsbDeviceReceiver, filter); 107 ContextUtils.getApplicationContext().registerReceiver(mUsbDeviceReceiver , filter);
108 } 108 }
109 109
110 private void unregisterForUsbDeviceIntentBroadcast() { 110 private void unregisterForUsbDeviceIntentBroadcast() {
111 mContext.unregisterReceiver(mUsbDeviceReceiver); 111 ContextUtils.getApplicationContext().unregisterReceiver(mUsbDeviceReceiv er);
112 mUsbDeviceReceiver = null; 112 mUsbDeviceReceiver = null;
113 } 113 }
114 } 114 }
OLDNEW
« no previous file with comments | « device/sensors/sensor_manager_android.cc ('k') | device/usb/usb_service_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698