summaryrefslogtreecommitdiffstats
path: root/core/java/android/view/InputQueue.java
Commit message (Collapse)AuthorAgeFilesLines
* Tell system server whether the app handled input events.Jeff Brown2010-11-081-6/+10
| | | | | | | | | | Refactored ViewRoot, NativeActivity and related classes to tell the dispatcher whether an input event was actually handled by the application. This will be used to move more of the global default key processing into the system server instead of the application. Change-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28
* Fix issue #3001362: API REVIEW: android.view.InputQueue.CallbackDianne Hackborn2010-10-061-0/+13
| | | | Change-Id: Ibc12a7326a13c318205774e226ed1f62a5cf11eb
* Optimize VelocityTracker to run in linear time.Jeff Brown2010-08-091-1/+1
| | | | | | | | | | | | Uses a linked list for efficient pointer addition and removal. When possible, makes use of the fact that pointer ids are usually in sorted order to avoid quadratic time lookups when adding new data. Fixed an incorrect assumption that the pointer count would always change when old pointers were removed. Also fixed a bug in InputQueue FinishedCallback recycling. Change-Id: Ie048d3bb022d39cf4185e2fe43923a861d94c4f3
* Enhanced VelocityTracker for > 5 pointers and fixed bugs.Jeff Brown2010-07-301-6/+42
| | | | | | | | | | | | | Improved PointerLocation tool to use VelocityTracker more efficiently and correctly when multiple pointers are down. Fixed a bug in TouchInputMapper where it was not correctly copying the id to index map in the last touch data. This could cause strange behavior on secondary pointer up events. Also added finished callback pooling in InputQueue. Change-Id: Ia85e52ac2fb7350960ea1d7edfbe81a1b3e8267b
* Add support for new input sources.Jeff Brown2010-07-151-27/+14
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove InputConsumer, replacing with InputQueue.Dianne Hackborn2010-06-231-3/+21
| | | | Change-Id: Ib06907278457aaee842b123adc072840ca3602d8
* Native input dispatch rewrite work in progress.Jeff Brown2010-06-131-0/+126
The old dispatch mechanism has been left in place and continues to be used by default for now. To enable native input dispatch, edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy. Includes part of the new input event NDK API. Some details TBD. To wire up input dispatch, as the ViewRoot adds a window to the window session it receives an InputChannel object as an output argument. The InputChannel encapsulates the file descriptors for a shared memory region and two pipe end-points. The ViewRoot then provides the InputChannel to the InputQueue. Behind the scenes, InputQueue simply attaches handlers to the native PollLoop object that underlies the MessageQueue. This way MessageQueue doesn't need to know anything about input dispatch per-se, it just exposes (in native code) a PollLoop that other components can use to monitor file descriptor state changes. There can be zero or more targets for any given input event. Each input target is specified by its input channel and some parameters including flags, an X/Y coordinate offset, and the dispatch timeout. An input target can request either synchronous dispatch (for foreground apps) or asynchronous dispatch (fire-and-forget for wallpapers and "outside" targets). Currently, finding the appropriate input targets for an event requires a call back into the WindowManagerServer from native code. In the future this will be refactored to avoid most of these callbacks except as required to handle pending focus transitions. End-to-end event dispatch mostly works! To do: event injection, rate limiting, ANRs, testing, optimization, etc. Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25