6f71d0fedbb04c048a7294976103e42f0f046641 |
|
24-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Filter virtual keys after touches. (DO NOT MERGE) Adds a new virtualKeyQuietTimeMillis configuration resource that sets the duration for which virtual keys will be dropped after recent touches on screen. The default value is 0; it is intended to be overridden per device using a resource overlay. This change is designed to help in two cases: 1. Swipes from touchscreen into virtual key area. 2. Accidental taps in virtual key area while using on-screen keyboard. Bug: 3089163 Change-Id: Id6733c83c2e2bc8d9553aa0e5c1fd74b741bec6e
/frameworks/base/include/ui/InputReader.h
|
c3db858de9fa152480b9cf53c8c0cb793a280722 |
|
21-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Add unit tests for native input and fix bugs identified. Fixed a bug where we would lose the first touch point when swiping out of the virtual key area. Fixed a bug where we would not send an ACTION_MOVE event in cases where individual pointers went down/up and the remaining pointers actually moved. This is important since many applications do not handle pointer movements during ACTION_POINTER_DOWN or ACTION_POINTER_UP. In the case of ACTION_POINTER_UP the movement was completely lost since all pointers were dispatched using their old location rather than the new location. Improved motion event validation to check for duplicate pointer ids. Added an input source constant that was missing from the NDK api but defined in the framework api. Added a timestamp when reporting added/removed devices in EventHub. Bug: 3070082 Change-Id: I3206a030f43b7616e2f48006e5a9d522c4d92e56
/frameworks/base/include/ui/InputReader.h
|
c6d282bb8223ed21666878f71c5a55013ee37805 |
|
15-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Improve input device calibration format. Added support for calibrating touch size for devices that report size as an area measurement rather than as a width. Fixed some bugs. Bug: 3096045 Change-Id: I30a12e73752883516ed054f8af407204bca45814
/frameworks/base/include/ui/InputReader.h
|
b699726018a0049665d8ad6b90dbc5af0e18f135 |
|
09-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Added more robust tracking and cancelation of events. This change fixes several issues where events would be dropped in the input dispatch pipeline in such a way that the dispatcher could not accurately track the state of the input device. Given more robust tracking, we can now also provide robust cancelation of input events in cases where an application might otherwise become out of sync with the event stream due to ANR, app switch, policy decisions, or forced focus transitions. Pruned some of the input dispatcher log output. Moved the responsibility for calling intercept*BeforeQueueing into the input dispatcher instead of the input reader and added support for early interception of injected events for events coming from trusted sources. This enables behaviors like injection of media keys while the screen is off, haptic feedback of injected virtual keys, so injected events become more "first class" in a way. Change-Id: Iec6ff1dd21e5f3c7feb80ea4feb5382bd090dbd9
/frameworks/base/include/ui/InputReader.h
|
7342bb9693f480f6c713b4a4f82a9ad9131cd667 |
|
02-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Wait for initial device scan to finish before updating config. This change narrows the opportunity for a race condition setting the resource Configuration while devices are being updated. Change-Id: I58efa563f4129ab0fce7108511d16a99dff7e451
/frameworks/base/include/ui/InputReader.h
|
0eaf3931a31c29f3a3883aab426b595c231c2a58 |
|
01-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Support haptic feedback for virtual keys defined in key layout. Change-Id: I83e4108a87332692e03791dc066206becbc7941f
/frameworks/base/include/ui/InputReader.h
|
ef3d7e861154c1ce1b8f86292138fc36c30232a3 |
|
30-Sep-2010 |
Jeff Brown <jeffbrown@google.com> |
Move verbose logging of device capabilities to dumpsys. Change-Id: I5d55eaebfdf049bd1ac1e7bab2758886cfefc9d7
/frameworks/base/include/ui/InputReader.h
|
01ce2e9eee41cc0c24b0d16465710a28ea337d5d |
|
27-Sep-2010 |
Jeff Brown <jeffbrown@google.com> |
Add suuport for splitting touch events across windows. This feature is currently used to enable dragging the start and end selection handles of a TextView at the same time. Could be used for other things later. Deleted some dead code in ArrowKeyMovementMethod and CursorControllers. Change-Id: I930accd97ca1ca1917aab8a807db2c950fc7b409
/frameworks/base/include/ui/InputReader.h
|
b88102f5b7e51552a3576cf197b4c8cf96f193d1 |
|
08-Sep-2010 |
Jeff Brown <jeffbrown@google.com> |
Input dispatcher ANR handling enhancements. This change is essentially a rewrite of the main input dispatcher loop with the target identification folded in. Since the input dispatcher now has all of the window state, it can make better decisions about when to ANR. Added a .5 second deadline for processing app switch keys. This behavior predates Gingerbread but had not previously been ported. Fixed some timing inaccuracies in the ANR accounting that could cause applications to ANR sooner than they should have. Added a mechanism for tracking key and motion events that have been dispatched to a window so that appropriate cancelation events can be synthesized when recovering from ANR. This change helps to keep applications in sync so they don't end up with stuck buttons upon recovery from ANRs. Added more comments to describe the tricky parts of PollLoop. Change-Id: I13dffca27acb436fc383980db536abc4d8b9e6f1
/frameworks/base/include/ui/InputReader.h
|
8d60866e2100db70ecf0502c14768a384514d7e9 |
|
30-Aug-2010 |
Jeff Brown <jeffbrown@google.com> |
Input device calibration and capabilities. Finished the input device capability API. Added a mechanism for calibrating touch devices to obtain more accurate information about the touch contact area. Improved pointer location to show new coordinates and capabilities. Optimized pointer location display and formatting to avoid allocating large numbers of temporary objects. The GC churn was causing the application to stutter very badly when more than a couple of fingers were down). Added more diagnostics. Change-Id: Ie25380278ed6f16c5b04cd9df848015850383498
/frameworks/base/include/ui/InputReader.h
|
2dfd7a7cbfa565e3aca584a9e5b6f681692b5781 |
|
18-Aug-2010 |
Jeff Brown <jeffbrown@google.com> |
Fix some input device mapping bugs with certain drivers. On single-touch devices, pointer up/down is signalled by a BTN_TOUCH key event. Previously we handled BTN_TOUCH immediately but some drivers may produce the sequence BTN_TOUCH, ABS_X, ABS_Y, SYN_REPORT on pointer down which caused us to emit a bad initial pointer down location. Now we wait for SYN_REPORT before reporting the up or down. On multi-touch devices, pointer up can be signalled by as little as the sequence SYN_MT_REPORT, SYN_REPORT. This change ensures that we handle this case. Added support for reading ABS_MT_PRESSURE when available. Corrected mapping of touchMajor/touchMinor on single touch devices. Minor code cleanup. Change-Id: Ic7ec4811241ed85a06e59b8a839ca05180d491d4
/frameworks/base/include/ui/InputReader.h
|
c3fc2d03d58a258c53c9265a70143d4af076b764 |
|
11-Aug-2010 |
Jeff Brown <jeffbrown@google.com> |
Fix safe mode and KeyEvent.getMaxKeyCode(). Bug: 2901731 Change-Id: I78617c1b9dee3790fc590e5af4b5083368873184
/frameworks/base/include/ui/InputReader.h
|
9e2ad36be87f2703b3d737189944d82f93bd4f27 |
|
31-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
Enhanced VelocityTracker for > 5 pointers and fixed bugs. 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
/frameworks/base/include/ui/InputReader.h
|
6328cdc89e099806a1893b89e4c724d596272d9e |
|
30-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
Improve thread safety of input mappers. Also fixed bug where old touch screen size could be reported by getMotionRange if an orientation change occurred but the user has not yet touched the screen. Bug: 2877345 Change-Id: I7878f47458f310ed6ebe6a5d1b2c9bec2c598ab9
/frameworks/base/include/ui/InputReader.h
|
6d0fec2de3601821f4f44eeb7d7deedebb2b7117 |
|
24-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
Refactor input reader to support new device types more easily. Refactored the input reader so that each raw input protocol is handled by a separate subclass of the new InputMapper type. This way, behaviors pertaining to keyboard, trackballs, touchscreens, switches and other devices are clearly distinguished for improved maintainability. Added partial support for describing capabilities of input devices (incomplete and untested for now, will be fleshed out in later commits). Simplified EventHub interface somewhat since InputReader is taking over more of the work. Cleaned up some of the interactions between InputManager and WindowManagerService related to reading input state. Fixed swiping finger from screen edge into display area. Added logging of device information to 'dumpsys window'. Change-Id: I17faffc33e3aec3a0f33f0b37e81a70609378612
/frameworks/base/include/ui/InputReader.h
|
00ba884436dc8b222ad850c73c936d87bf4e84de |
|
17-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
Fix individual pointer id up/down reporting. Fix a minor threading bug in InputManager dump. Change-Id: Ic2eecf7df5a8dc9f40561fcb03ebe58a2c073778
/frameworks/base/include/ui/InputReader.h
|
fd03582995e0fce963dd0fa0669e3211b74c0dd7 |
|
01-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
Add initial gamepad support. Change-Id: I0439648f6eb5405f200e4223c915eb3a418b32b9
/frameworks/base/include/ui/InputReader.h
|
00fa7bdd69f0868fd17ea7c881c771d785b2fbbd |
|
03-Jul-2010 |
Jeff Brown <jeffbrown@google.com> |
More native input dispatch work. Removed old input dispatch code. Refactored the policy callbacks. Pushed a tiny bit of the power manager state down to native. Fixed long press on MENU. Made the virtual key detection and cancelation a bit more precise. Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
/frameworks/base/include/ui/InputReader.h
|
d0097871828bb7d5d6eec06cadd92c2e3358849b |
|
30-Jun-2010 |
Jeff Brown <jeffbrown@google.com> |
Fix injection of specially intercepted keys like HOME. This change mainly unwinds a premature optimization in the dispatch pipeline. To test HOME injection, run 'adb shell input keyevent 3'. Change-Id: I1c4b7377c205da7c898014b8b07fc6dc1d46e4dd
/frameworks/base/include/ui/InputReader.h
|
0b72e82c5f5d4ab709539c3490d6c7023f680dff |
|
30-Jun-2010 |
Jeff Brown <jeffbrown@google.com> |
Fix native input dispatch in the emulator. Set a default orientation of ROTATION_0. Added some more careful checks based on whether we have valid absolute axis information from the driver. Reset key repeating during configuration changes since the keyboard device may have been removed. Change-Id: I685960828acffcb17595fc5683309e8064a76714
/frameworks/base/include/ui/InputReader.h
|
349703effce5acc53ed96f7ed8556131f0c65e18 |
|
22-Jun-2010 |
Jeff Brown <jeffbrown@google.com> |
Native input event dispatching. Target identification is now fully native. Fixed a couple of minor issues related to input injection. Native input enabled by default, can be disabled by setting WindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH to false. Change-Id: I7edf66ed3e987cc9306ad4743ac57a116af452ff
/frameworks/base/include/ui/InputReader.h
|
9c3cda04d969912bc46184f2b326d1db95e0aba5 |
|
15-Jun-2010 |
Jeff Brown <jeffbrown@google.com> |
More work in progress on native events. Refactored the code to eliminate potential deadlocks due to re-entrant calls from the policy into the dispatcher. Also added some plumbing that will be used to notify the framework about ANRs. Change-Id: Iba7a10de0cb3c56cd7520d6ce716db52fdcc94ff
/frameworks/base/include/ui/InputReader.h
|
46b9ac0ae2162309774a7478cd9d4e578747bfc2 |
|
23-Apr-2010 |
Jeff Brown <jeffbrown@google.com> |
Native input dispatch rewrite work in progress. 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
/frameworks/base/include/ui/InputReader.h
|