diff options
author | Aravind Akella <aakella@google.com> | 2015-07-07 19:53:45 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-07 19:53:46 +0000 |
commit | c5889757cb7474b613db22cc7a0af44fe50661fd (patch) | |
tree | 4b3ea444476025fa07589f4ff6b40ab827f68167 | |
parent | 588932a53e63c0a7ee281dea22559c129b40eb99 (diff) | |
parent | 516e40ea5d73cf577d8dec559c7902b79cf483d0 (diff) | |
download | frameworks_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.java | 16 | ||||
-rw-r--r-- | core/jni/android_hardware_SensorManager.cpp | 19 |
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", |