summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAravind Akella <aakella@google.com>2015-07-07 19:53:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-07 19:53:46 +0000
commitc5889757cb7474b613db22cc7a0af44fe50661fd (patch)
tree4b3ea444476025fa07589f4ff6b40ab827f68167
parent588932a53e63c0a7ee281dea22559c129b40eb99 (diff)
parent516e40ea5d73cf577d8dec559c7902b79cf483d0 (diff)
downloadframeworks_base-c5889757cb7474b613db22cc7a0af44fe50661fd.zip
frameworks_base-c5889757cb7474b613db22cc7a0af44fe50661fd.tar.gz
frameworks_base-c5889757cb7474b613db22cc7a0af44fe50661fd.tar.bz2
Merge "Clean up get sensorList." into mnc-dev
-rw-r--r--core/java/android/hardware/SystemSensorManager.java16
-rw-r--r--core/jni/android_hardware_SensorManager.cpp19
2 files changed, 16 insertions, 19 deletions
diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java
index 85474a8..e7deae8 100644
--- a/core/java/android/hardware/SystemSensorManager.java
+++ b/core/java/android/hardware/SystemSensorManager.java
@@ -42,7 +42,8 @@ import java.util.List;
public class SystemSensorManager extends SensorManager {
private static native void nativeClassInit();
private static native long nativeCreate(String opPackageName);
- private static native int nativeGetNextSensor(long nativeInstance, Sensor sensor, int next);
+ private static native boolean nativeGetSensorAtIndex(long nativeInstance,
+ Sensor sensor, int index);
private static native boolean nativeIsDataInjectionEnabled(long nativeInstance);
private static boolean sSensorModuleInitialized = false;
@@ -80,15 +81,12 @@ public class SystemSensorManager extends SensorManager {
}
// initialize the sensor list
- int i = 0;
- do {
+ for (int index = 0;;++index) {
Sensor sensor = new Sensor();
- i = nativeGetNextSensor(mNativeInstance, sensor, i);
- if (i >= 0) {
- mFullSensorsList.add(sensor);
- mHandleToSensor.append(sensor.getHandle(), sensor);
- }
- } while (i > 0);
+ if (!nativeGetSensorAtIndex(mNativeInstance, sensor, index)) break;
+ mFullSensorsList.add(sensor);
+ mHandleToSensor.append(sensor.getHandle(), sensor);
+ }
}
diff --git a/core/jni/android_hardware_SensorManager.cpp b/core/jni/android_hardware_SensorManager.cpp
index 1356c99..ec56507 100644
--- a/core/jni/android_hardware_SensorManager.cpp
+++ b/core/jni/android_hardware_SensorManager.cpp
@@ -141,18 +141,18 @@ nativeCreate
return (jlong) new SensorManager(String16(opPackageNameUtf.c_str()));
}
-static jint
-nativeGetNextSensor(JNIEnv *env, jclass clazz, jlong sensorManager, jobject sensor, jint next)
+static jboolean
+nativeGetSensorAtIndex(JNIEnv *env, jclass clazz, jlong sensorManager, jobject sensor, jint index)
{
SensorManager* mgr = reinterpret_cast<SensorManager*>(sensorManager);
Sensor const* const* sensorList;
size_t count = mgr->getSensorList(&sensorList);
- if (size_t(next) >= count) {
- return -1;
+ if (size_t(index) >= count) {
+ return false;
}
- Sensor const* const list = sensorList[next];
+ Sensor const* const list = sensorList[index];
const SensorOffsets& sensorOffsets(gSensorOffsets);
jstring name = getInternedString(env, &list->getName());
jstring vendor = getInternedString(env, &list->getVendor());
@@ -177,8 +177,7 @@ nativeGetNextSensor(JNIEnv *env, jclass clazz, jlong sensorManager, jobject sens
jstring stringType = getInternedString(env, &list->getStringType());
env->SetObjectField(sensor, sensorOffsets.stringType, stringType);
}
- next++;
- return size_t(next) < count ? next : 0;
+ return true;
}
static jboolean nativeIsDataInjectionEnabled(JNIEnv *_env, jclass _this, jlong sensorManager) {
@@ -352,9 +351,9 @@ static JNINativeMethod gSystemSensorManagerMethods[] = {
"(Ljava/lang/String;)J",
(void*)nativeCreate },
- {"nativeGetNextSensor",
- "(JLandroid/hardware/Sensor;I)I",
- (void*)nativeGetNextSensor },
+ {"nativeGetSensorAtIndex",
+ "(JLandroid/hardware/Sensor;I)Z",
+ (void*)nativeGetSensorAtIndex },
{"nativeIsDataInjectionEnabled",
"(J)Z",