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

Side by Side Diff: ui/android/java/src/org/chromium/ui/base/TouchDevice.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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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.ui.base; 5 package org.chromium.ui.base;
6 6
7 import android.content.Context;
8 import android.content.pm.PackageManager; 7 import android.content.pm.PackageManager;
9 import android.view.InputDevice; 8 import android.view.InputDevice;
10 9
10 import org.chromium.base.ContextUtils;
11 import org.chromium.base.annotations.CalledByNative; 11 import org.chromium.base.annotations.CalledByNative;
12 import org.chromium.base.annotations.JNINamespace; 12 import org.chromium.base.annotations.JNINamespace;
13 13
14 /** 14 /**
15 * Simple proxy for querying input device properties from C++. 15 * Simple proxy for querying input device properties from C++.
16 */ 16 */
17 @JNINamespace("ui") 17 @JNINamespace("ui")
18 public class TouchDevice { 18 public class TouchDevice {
19 19
20 /** 20 /**
21 * Static methods only so make constructor private. 21 * Static methods only so make constructor private.
22 */ 22 */
23 private TouchDevice() { } 23 private TouchDevice() { }
24 24
25 /** 25 /**
26 * @return Maximum supported touch points. 26 * @return Maximum supported touch points.
27 */ 27 */
28 @CalledByNative 28 @CalledByNative
29 private static int maxTouchPoints(Context context) { 29 private static int maxTouchPoints() {
30 // Android only tells us if the device belongs to a "Touchscreen Class" which only 30 // Android only tells us if the device belongs to a "Touchscreen Class" which only
31 // guarantees a minimum number of touch points. Be conservative and retu rn the minimum, 31 // guarantees a minimum number of touch points. Be conservative and retu rn the minimum,
32 // checking membership from the highest class down. 32 // checking membership from the highest class down.
33 33
34 if (context.getPackageManager().hasSystemFeature( 34 if (ContextUtils.getApplicationContext().getPackageManager().hasSystemFe ature(
35 PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND)) { 35 PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND)) {
36 return 5; 36 return 5;
37 } else if (context.getPackageManager().hasSystemFeature( 37 } else if (ContextUtils.getApplicationContext().getPackageManager().hasS ystemFeature(
38 PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT)) { 38 PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINC T)) {
39 return 2; 39 return 2;
40 } else if (context.getPackageManager().hasSystemFeature( 40 } else if (ContextUtils.getApplicationContext().getPackageManager().hasS ystemFeature(
41 PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH)) { 41 PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH)) {
42 return 2; 42 return 2;
43 } else if (context.getPackageManager().hasSystemFeature( 43 } else if (ContextUtils.getApplicationContext().getPackageManager().hasS ystemFeature(
44 PackageManager.FEATURE_TOUCHSCREEN)) { 44 PackageManager.FEATURE_TOUCHSCREEN)) {
45 return 1; 45 return 1;
46 } else { 46 } else {
47 return 0; 47 return 0;
48 } 48 }
49 } 49 }
50 50
51 /** 51 /**
52 * @return an array of two ints: result[0] represents the pointer-types and result[1] represents 52 * @return an array of two ints: result[0] represents the pointer-types and result[1] represents
53 * the hover-types supported by the device, where each int is the un ion (bitwise OR) of 53 * the hover-types supported by the device, where each int is the un ion (bitwise OR) of
54 * corresponding type (PointerType/HoverType) bits. 54 * corresponding type (PointerType/HoverType) bits.
55 */ 55 */
56 @CalledByNative 56 @CalledByNative
57 private static int[] availablePointerAndHoverTypes(Context context) { 57 private static int[] availablePointerAndHoverTypes() {
58 int[] result = new int[2]; 58 int[] result = new int[2];
59 result[0] = result[1] = 0; 59 result[0] = result[1] = 0;
60 60
61 for (int deviceId : InputDevice.getDeviceIds()) { 61 for (int deviceId : InputDevice.getDeviceIds()) {
62 InputDevice inputDevice = InputDevice.getDevice(deviceId); 62 InputDevice inputDevice = InputDevice.getDevice(deviceId);
63 if (inputDevice == null) continue; 63 if (inputDevice == null) continue;
64 64
65 int sources = inputDevice.getSources(); 65 int sources = inputDevice.getSources();
66 66
67 if (hasSource(sources, InputDevice.SOURCE_MOUSE) 67 if (hasSource(sources, InputDevice.SOURCE_MOUSE)
(...skipping 21 matching lines...) Expand all
89 if (result[0] == 0) result[0] = PointerType.NONE; 89 if (result[0] == 0) result[0] = PointerType.NONE;
90 if (result[1] == 0) result[1] = HoverType.NONE; 90 if (result[1] == 0) result[1] = HoverType.NONE;
91 91
92 return result; 92 return result;
93 } 93 }
94 94
95 private static boolean hasSource(int sources, int inputDeviceSource) { 95 private static boolean hasSource(int sources, int inputDeviceSource) {
96 return (sources & inputDeviceSource) == inputDeviceSource; 96 return (sources & inputDeviceSource) == inputDeviceSource;
97 } 97 }
98 } 98 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698