diff options
author | Jeff Brown <jeffbrown@google.com> | 2010-07-14 18:48:53 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2010-07-15 18:32:33 -0700 |
commit | c5ed5910c9ef066cec6a13bbb404ec57b1e92637 (patch) | |
tree | b06dfdac2d807dae78a2634007b6e627eefd0804 /core/java/android/view/InputQueue.java | |
parent | d9452ecd0ce6c8e0518055929ba1fd0712146405 (diff) | |
download | frameworks_base-c5ed5910c9ef066cec6a13bbb404ec57b1e92637.zip frameworks_base-c5ed5910c9ef066cec6a13bbb404ec57b1e92637.tar.gz frameworks_base-c5ed5910c9ef066cec6a13bbb404ec57b1e92637.tar.bz2 |
Add support for new input sources.
Added several new coordinate values to MotionEvents to capture
touch major/minor area, tool major/minor area and orientation.
Renamed NDK input constants per convention.
Added InputDevice class in Java which will eventually provide
useful information about available input devices.
Added APIs for manufacturing new MotionEvent objects with multiple
pointers and all necessary coordinate data.
Fixed a bug in the input dispatcher where it could get stuck with
a pointer down forever.
Fixed a bug in the WindowManager where the input window list could
end up containing stale removed windows.
Fixed a bug in the WindowManager where the input channel was being
removed only after the final animation transition had taken place
which caused spurious WINDOW DIED log messages to be printed.
Change-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68
Diffstat (limited to 'core/java/android/view/InputQueue.java')
-rw-r--r-- | core/java/android/view/InputQueue.java | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/core/java/android/view/InputQueue.java b/core/java/android/view/InputQueue.java index 7feee38..997246f 100644 --- a/core/java/android/view/InputQueue.java +++ b/core/java/android/view/InputQueue.java @@ -26,6 +26,8 @@ import android.util.Slog; public final class InputQueue { private static final String TAG = "InputQueue"; + private static final boolean DEBUG = false; + public static interface Callback { void onInputQueueCreated(InputQueue queue); void onInputQueueDestroyed(InputQueue queue); @@ -33,15 +35,6 @@ public final class InputQueue { final InputChannel mChannel; - // Describes the interpretation of an event. - // XXX This concept is tentative. See comments in android/input.h. - /** @hide */ - public static final int INPUT_EVENT_NATURE_KEY = 1; - /** @hide */ - public static final int INPUT_EVENT_NATURE_TOUCH = 2; - /** @hide */ - public static final int INPUT_EVENT_NATURE_TRACKBALL = 3; - private static Object sLock = new Object(); private static native void nativeRegisterInputChannel(InputChannel inputChannel, @@ -79,7 +72,10 @@ public final class InputQueue { } synchronized (sLock) { - Slog.d(TAG, "Registering input channel '" + inputChannel + "'"); + if (DEBUG) { + Slog.d(TAG, "Registering input channel '" + inputChannel + "'"); + } + nativeRegisterInputChannel(inputChannel, inputHandler, messageQueue); } } @@ -96,35 +92,26 @@ public final class InputQueue { } synchronized (sLock) { - Slog.d(TAG, "Unregistering input channel '" + inputChannel + "'"); + if (DEBUG) { + Slog.d(TAG, "Unregistering input channel '" + inputChannel + "'"); + } + nativeUnregisterInputChannel(inputChannel); } } @SuppressWarnings("unused") private static void dispatchKeyEvent(InputHandler inputHandler, - KeyEvent event, int nature, long finishedToken) { + KeyEvent event, long finishedToken) { Runnable finishedCallback = new FinishedCallback(finishedToken); - - if (nature == INPUT_EVENT_NATURE_KEY) { - inputHandler.handleKey(event, finishedCallback); - } else { - Slog.d(TAG, "Unsupported nature for key event: " + nature); - } + inputHandler.handleKey(event, finishedCallback); } @SuppressWarnings("unused") private static void dispatchMotionEvent(InputHandler inputHandler, - MotionEvent event, int nature, long finishedToken) { + MotionEvent event, long finishedToken) { Runnable finishedCallback = new FinishedCallback(finishedToken); - - if (nature == INPUT_EVENT_NATURE_TOUCH) { - inputHandler.handleTouch(event, finishedCallback); - } else if (nature == INPUT_EVENT_NATURE_TRACKBALL) { - inputHandler.handleTrackball(event, finishedCallback); - } else { - Slog.d(TAG, "Unsupported nature for motion event: " + nature); - } + inputHandler.handleMotion(event, finishedCallback); } // TODO consider recycling finished callbacks when done |