diff options
author | Jeff Brown <jeffbrown@google.com> | 2011-01-18 14:31:31 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-18 14:31:31 -0800 |
commit | 41395459e676cf9ab4059e08446656f145662c2d (patch) | |
tree | 6f31fb66122790fa6378d2478c6b5c82194eb49f /services | |
parent | 07e6f616d122496342a5bae51323bb218d88f7f2 (diff) | |
parent | 6f71d0fedbb04c048a7294976103e42f0f046641 (diff) | |
download | frameworks_base-41395459e676cf9ab4059e08446656f145662c2d.zip frameworks_base-41395459e676cf9ab4059e08446656f145662c2d.tar.gz frameworks_base-41395459e676cf9ab4059e08446656f145662c2d.tar.bz2 |
Merge "Filter virtual keys after touches. (DO NOT MERGE)" into gingerbread
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/InputManager.java | 8 | ||||
-rw-r--r-- | services/jni/com_android_server_InputManager.cpp | 26 |
2 files changed, 32 insertions, 2 deletions
diff --git a/services/java/com/android/server/InputManager.java b/services/java/com/android/server/InputManager.java index b44fe00..ba39c57 100644 --- a/services/java/com/android/server/InputManager.java +++ b/services/java/com/android/server/InputManager.java @@ -411,7 +411,13 @@ public class InputManager { return mContext.getResources().getBoolean( com.android.internal.R.bool.config_filterJumpyTouchEvents); } - + + @SuppressWarnings("unused") + public int getVirtualKeyQuietTimeMillis() { + return mContext.getResources().getInteger( + com.android.internal.R.integer.config_virtualKeyQuietTimeMillis); + } + @SuppressWarnings("unused") public VirtualKeyDefinition[] getVirtualKeyDefinitions(String deviceName) { ArrayList<VirtualKeyDefinition> keys = new ArrayList<VirtualKeyDefinition>(); diff --git a/services/jni/com_android_server_InputManager.cpp b/services/jni/com_android_server_InputManager.cpp index 693d630..171471e 100644 --- a/services/jni/com_android_server_InputManager.cpp +++ b/services/jni/com_android_server_InputManager.cpp @@ -55,6 +55,7 @@ static struct { jmethodID checkInjectEventsPermission; jmethodID filterTouchEvents; jmethodID filterJumpyTouchEvents; + jmethodID getVirtualKeyQuietTimeMillis; jmethodID getVirtualKeyDefinitions; jmethodID getInputDeviceCalibration; jmethodID getExcludedDeviceNames; @@ -183,6 +184,7 @@ public: int32_t* width, int32_t* height, int32_t* orientation); virtual bool filterTouchEvents(); virtual bool filterJumpyTouchEvents(); + virtual nsecs_t getVirtualKeyQuietTime(); virtual void getVirtualKeyDefinitions(const String8& deviceName, Vector<VirtualKeyDefinition>& outVirtualKeyDefinitions); virtual void getInputDeviceCalibration(const String8& deviceName, @@ -233,6 +235,7 @@ private: // Cached filtering policies. int32_t mFilterTouchEvents; int32_t mFilterJumpyTouchEvents; + nsecs_t mVirtualKeyQuietTime; // Cached throttling policy. int32_t mMaxEventsPerSecond; @@ -264,7 +267,7 @@ private: // ---------------------------------------------------------------------------- NativeInputManager::NativeInputManager(jobject callbacksObj) : - mFilterTouchEvents(-1), mFilterJumpyTouchEvents(-1), + mFilterTouchEvents(-1), mFilterJumpyTouchEvents(-1), mVirtualKeyQuietTime(-1), mMaxEventsPerSecond(-1), mDisplayWidth(-1), mDisplayHeight(-1), mDisplayOrientation(ROTATION_0) { JNIEnv* env = jniEnv(); @@ -451,6 +454,24 @@ bool NativeInputManager::filterJumpyTouchEvents() { return mFilterJumpyTouchEvents; } +nsecs_t NativeInputManager::getVirtualKeyQuietTime() { + if (mVirtualKeyQuietTime < 0) { + JNIEnv* env = jniEnv(); + + jint result = env->CallIntMethod(mCallbacksObj, + gCallbacksClassInfo.getVirtualKeyQuietTimeMillis); + if (checkAndClearExceptionFromCallback(env, "getVirtualKeyQuietTimeMillis")) { + result = 0; + } + if (result < 0) { + result = 0; + } + + mVirtualKeyQuietTime = milliseconds_to_nanoseconds(result); + } + return mVirtualKeyQuietTime; +} + void NativeInputManager::getVirtualKeyDefinitions(const String8& deviceName, Vector<VirtualKeyDefinition>& outVirtualKeyDefinitions) { outVirtualKeyDefinitions.clear(); @@ -1351,6 +1372,9 @@ int register_android_server_InputManager(JNIEnv* env) { GET_METHOD_ID(gCallbacksClassInfo.filterJumpyTouchEvents, gCallbacksClassInfo.clazz, "filterJumpyTouchEvents", "()Z"); + GET_METHOD_ID(gCallbacksClassInfo.getVirtualKeyQuietTimeMillis, gCallbacksClassInfo.clazz, + "getVirtualKeyQuietTimeMillis", "()I"); + GET_METHOD_ID(gCallbacksClassInfo.getVirtualKeyDefinitions, gCallbacksClassInfo.clazz, "getVirtualKeyDefinitions", "(Ljava/lang/String;)[Lcom/android/server/InputManager$VirtualKeyDefinition;"); |