diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-06-01 12:39:25 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-06-03 19:21:49 -0700 |
commit | 9eb7d86181729c3eb769d71123c4ce9ffc868f08 (patch) | |
tree | 5844b6bfd4c9eac8bc5015fa54f5255a376805c8 /core/jni/android_view_VelocityTracker.cpp | |
parent | 6e8e41a336dfc0c43b672fd105a23aa48c93ec67 (diff) | |
download | frameworks_base-9eb7d86181729c3eb769d71123c4ce9ffc868f08.zip frameworks_base-9eb7d86181729c3eb769d71123c4ce9ffc868f08.tar.gz frameworks_base-9eb7d86181729c3eb769d71123c4ce9ffc868f08.tar.bz2 |
Make velocity tracker strategy configurable.
This change is very useful for testing purposes because it makes it
easy to compare different implementations to see how they behave.
There is no change to the current default strategy.
Bug: 6413587
Change-Id: I4d8567aa4160571ba9fa397ce419882cd9366749
Diffstat (limited to 'core/jni/android_view_VelocityTracker.cpp')
-rw-r--r-- | core/jni/android_view_VelocityTracker.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/core/jni/android_view_VelocityTracker.cpp b/core/jni/android_view_VelocityTracker.cpp index 0180e0a..c2fa3be 100644 --- a/core/jni/android_view_VelocityTracker.cpp +++ b/core/jni/android_view_VelocityTracker.cpp @@ -24,6 +24,8 @@ #include <androidfw/VelocityTracker.h> #include "android_view_MotionEvent.h" +#include <ScopedUtfChars.h> + namespace android { @@ -42,7 +44,7 @@ static struct { class VelocityTrackerState { public: - VelocityTrackerState(); + VelocityTrackerState(const char* strategy); void clear(); void addMovement(const MotionEvent* event); @@ -61,7 +63,8 @@ private: Velocity mCalculatedVelocity[MAX_POINTERS]; }; -VelocityTrackerState::VelocityTrackerState() : mActivePointerId(-1) { +VelocityTrackerState::VelocityTrackerState(const char* strategy) : + mVelocityTracker(strategy), mActivePointerId(-1) { } void VelocityTrackerState::clear() { @@ -135,8 +138,13 @@ bool VelocityTrackerState::getEstimator(int32_t id, VelocityTracker::Estimator* // --- JNI Methods --- -static jint android_view_VelocityTracker_nativeInitialize(JNIEnv* env, jclass clazz) { - return reinterpret_cast<jint>(new VelocityTrackerState()); +static jint android_view_VelocityTracker_nativeInitialize(JNIEnv* env, jclass clazz, + jstring strategyStr) { + if (strategyStr) { + ScopedUtfChars strategy(env, strategyStr); + return reinterpret_cast<jint>(new VelocityTrackerState(strategy.c_str())); + } + return reinterpret_cast<jint>(new VelocityTrackerState(NULL)); } static void android_view_VelocityTracker_nativeDispose(JNIEnv* env, jclass clazz, jint ptr) { @@ -209,7 +217,7 @@ static jboolean android_view_VelocityTracker_nativeGetEstimator(JNIEnv* env, jcl static JNINativeMethod gVelocityTrackerMethods[] = { /* name, signature, funcPtr */ { "nativeInitialize", - "()I", + "(Ljava/lang/String;)I", (void*)android_view_VelocityTracker_nativeInitialize }, { "nativeDispose", "(I)V", |