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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/DeviceMotionAndOrientation.java

Issue 152893002: [DeviceLight API] Content Side Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix in Java file, stop() Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/content_renderer.gypi ('k') | content/public/test/layouttest_support.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/public/android/java/src/org/chromium/content/browser/DeviceMotionAndOrientation.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/DeviceMotionAndOrientation.java b/content/public/android/java/src/org/chromium/content/browser/DeviceMotionAndOrientation.java
index be73f8c0ab6d84da452435d12b8b6b51e9f68e32..fb866e78c4128e38232cbbfc839d224bd87bc942 100644
--- a/content/public/android/java/src/org/chromium/content/browser/DeviceMotionAndOrientation.java
+++ b/content/public/android/java/src/org/chromium/content/browser/DeviceMotionAndOrientation.java
@@ -66,6 +66,7 @@ class DeviceMotionAndOrientation implements SensorEventListener {
*/
static final int DEVICE_ORIENTATION = 0;
static final int DEVICE_MOTION = 1;
+ static final int DEVICE_LIGHT = 2;
static final Set<Integer> DEVICE_ORIENTATION_SENSORS = CollectionUtil.newHashSet(
Sensor.TYPE_ROTATION_VECTOR);
@@ -75,8 +76,13 @@ class DeviceMotionAndOrientation implements SensorEventListener {
Sensor.TYPE_LINEAR_ACCELERATION,
Sensor.TYPE_GYROSCOPE);
+ static final Set<Integer> DEVICE_LIGHT_SENSORS = CollectionUtil.newHashSet(
+ Sensor.TYPE_LIGHT);
+
@VisibleForTesting
final Set<Integer> mActiveSensors = new HashSet<Integer>();
+
+ boolean mDeviceLightIsActive = false;
boolean mDeviceMotionIsActive = false;
boolean mDeviceOrientationIsActive = false;
@@ -84,6 +90,8 @@ class DeviceMotionAndOrientation implements SensorEventListener {
mAppContext = context.getApplicationContext();
}
+ // TODO(riju) : Use the Device Motion/ Orientation infrastructure as of now.
+ // rename accordignly later.
/**
* Start listening for sensor events. If this object is already listening
* for events, the old callback is unregistered first.
@@ -108,6 +116,9 @@ class DeviceMotionAndOrientation implements SensorEventListener {
// note: device motion spec does not require all sensors to be available
success = registerSensors(DEVICE_MOTION_SENSORS, rateInMilliseconds, false);
break;
+ case DEVICE_LIGHT:
+ success = registerSensors(DEVICE_LIGHT_SENSORS, rateInMilliseconds, false);
+ break;
default:
Log.e(TAG, "Unknown event type: " + eventType);
return false;
@@ -145,11 +156,25 @@ class DeviceMotionAndOrientation implements SensorEventListener {
if (mDeviceMotionIsActive) {
sensorsToRemainActive.addAll(DEVICE_MOTION_SENSORS);
}
+ if (mDeviceLightIsActive) {
+ sensorsToRemainActive.addAll(DEVICE_LIGHT_SENSORS);
+ }
break;
case DEVICE_MOTION:
if (mDeviceOrientationIsActive) {
sensorsToRemainActive.addAll(DEVICE_ORIENTATION_SENSORS);
}
+ if (mDeviceLightIsActive) {
+ sensorsToRemainActive.addAll(DEVICE_LIGHT_SENSORS);
+ }
+ break;
+ case DEVICE_LIGHT:
+ if (mDeviceMotionIsActive) {
+ sensorsToRemainActive.addAll(DEVICE_MOTION_SENSORS);
+ }
+ if (mDeviceOrientationIsActive) {
+ sensorsToRemainActive.addAll(DEVICE_ORIENTATION_SENSORS);
+ }
break;
default:
Log.e(TAG, "Unknown event type: " + eventType);
@@ -211,6 +236,11 @@ class DeviceMotionAndOrientation implements SensorEventListener {
}
}
break;
+ case Sensor.TYPE_LIGHT:
+ if (mDeviceLightIsActive) {
+ gotLight(values[0]);
+ }
+ break;
default:
// Unexpected
return;
@@ -344,6 +374,9 @@ class DeviceMotionAndOrientation implements SensorEventListener {
case DEVICE_MOTION:
mDeviceMotionIsActive = value;
return;
+ case DEVICE_LIGHT:
+ mDeviceLightIsActive = value;
+ return;
}
}
@@ -425,6 +458,14 @@ class DeviceMotionAndOrientation implements SensorEventListener {
}
}
+ protected void gotLight(double value) {
+ synchronized (mNativePtrLock) {
+ if (mNativePtr != 0) {
+ nativeGotLight(mNativePtr, value);
+ }
+ }
+ }
+
private Handler getHandler() {
// TODO(timvolodine): Remove the mHandlerLock when sure that getHandler is not called
// from multiple threads. This will be the case when device motion and device orientation
@@ -483,6 +524,13 @@ class DeviceMotionAndOrientation implements SensorEventListener {
double alpha, double beta, double gamma);
/**
+ * Device Light value from Ambient Light Sensors
+ */
+ private native void nativeGotLight(
+ long nativeSensorManagerAndroid,
+ double value);
+
+ /**
* Need the an interface for SensorManager for testing.
*/
interface SensorManagerProxy {
« no previous file with comments | « content/content_renderer.gypi ('k') | content/public/test/layouttest_support.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698