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

Side by Side Diff: device/generic_sensor/android/java/src/org/chromium/device/sensors/PlatformSensorProvider.java

Issue 2284613002: [sensors] Android platform adaptation for Generic Sensor API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 4 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.device.sensors;
6
7 import android.content.Context;
8 import android.hardware.Sensor;
9 import android.hardware.SensorManager;
10 import android.os.Handler;
11 import android.os.HandlerThread;
12
13 import org.chromium.base.annotations.CalledByNative;
14 import org.chromium.base.annotations.JNINamespace;
15
16 import org.chromium.mojom.device.mojom.SensorType;
17
18 /**
19 * Lifetime is controlled by device::PlatformSensorProviderAndroid.
20 */
21 @JNINamespace("device")
22 final class PlatformSensorProvider {
23 private final SensorManager mSensorManager;
24 private final HandlerThread mSensorsThread;
25 private final Handler mHandler;
26
27 private PlatformSensorProvider(Context context) {
28 mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR _SERVICE);
29
30 if (mSensorManager != null) {
31 mSensorsThread = new HandlerThread("SensorsHandlerThread");
Ted C 2016/09/01 00:12:36 what thread are sensors handled on for other platf
shalamov 2016/09/06 12:36:43 Added code that starts / stops thread when there a
32 mSensorsThread.start();
33 mHandler = new Handler(mSensorsThread.getLooper());
34 } else {
35 mSensorsThread = null;
36 mHandler = null;
37 }
38 }
39
40 @CalledByNative
41 private static PlatformSensorProvider create(Context context) {
42 return new PlatformSensorProvider(context);
43 }
44
45 @CalledByNative
46 private PlatformSensor createSensor(int type) {
47 if (mSensorManager == null || mHandler == null) return null;
48
49 try {
50 switch (type) {
51 case SensorType.AMBIENT_LIGHT:
52 return new GenericPlatformSensor(
53 Sensor.TYPE_LIGHT, 1, mSensorManager, mHandler);
54 case SensorType.ACCELEROMETER:
55 return new GenericPlatformSensor(
56 Sensor.TYPE_ACCELEROMETER, 3, mSensorManager, mHandl er);
57 case SensorType.LINEAR_ACCELERATION:
58 return new GenericPlatformSensor(
59 Sensor.TYPE_LINEAR_ACCELERATION, 3, mSensorManager, mHandler);
60 case SensorType.GYROSCOPE:
61 return new GenericPlatformSensor(
62 Sensor.TYPE_GYROSCOPE, 3, mSensorManager, mHandler);
63 case SensorType.MAGNETOMETER:
64 return new GenericPlatformSensor(
65 Sensor.TYPE_MAGNETIC_FIELD, 3, mSensorManager, mHand ler);
66 }
67 } catch (PlatformSensorException e) {
68 return null;
69 }
70
71 return null;
72 }
73 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698