074b8b7cf19d128f16e0de12bc2fc58e7438ec37 |
01-Nov-2012 |
Jeff Brown <jeffbrown@google.com> |
Eliminate potential reentrance from unregisterInputChannel. Ensure that all callbacks into the window manager policy occur on the input dispatcher thread in the right place. This fixes a potential deadlock that may occur if the window manager unregisters an input channel while holding its own lock. The change is simply to defer running asynchronous commands (usually callbacks into the policy) until the next iteration of the dispatch looper thread. Bug: 7382388 Change-Id: I90095580d717fcddb2209ef332df56400f837a34
nputDispatcher.cpp
nputDispatcher.h
|
f33b2b2b2483fa824c650b281159ca62e1d0123a |
06-Oct-2012 |
Jeff Brown <jeffbrown@google.com> |
Recover from bad input event timestamps from the kernel. This can happen due to a race when the input device is opened or if the kernel happens to be missing the required Android patches to set the timestamp correctly. Bug: 7291243 Change-Id: If4319440eaff2889147c86296abd39efc5664346
ventHub.cpp
nputReader.cpp
|
1e3b98d47df596d0c4eadbdf60143709f8465b28 |
01-Oct-2012 |
Jeff Brown <jeffbrown@google.com> |
New internal API to eliminate poke locks. Added a new WindowManager.LayoutParams inputFeatures flag to disable automatic user activity behavior when an input event is sent to a window. Added a new WindowManager.LayoutParams field userActivityTimeout. Bug: 7165399 Change-Id: I204eafa37ef26aacc2c52a1ba1ecce1eebb0e0d9
nputDispatcher.cpp
nputWindow.h
|
bcc046af4ef171aa3aa3c6b64efb5cafc1e46cd3 |
28-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Bundle correlated switch changes atomically. This is a prerequisite for headset jack detection on Manta. Bug: 6548391 Change-Id: I549a194344511c0cee578b00f6a9ab5fdbdfb99c
nputDispatcher.cpp
nputDispatcher.h
nputListener.cpp
nputListener.h
nputReader.cpp
nputReader.h
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|
83d616a9c7b9505153d258511eb5c16b552e268d |
10-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Make input system aware of multiple displays. The input system needs to know about the window that has focus, even if it is on a secondary display. So now we send it the list of all windows and indicate which display they are on. We filter the list of windows as necessary when delivering touch events. To keep things simple, monitor input channels and input filters are not supported except on the main display. We also do not pass the display id to applications; it is only used inside the input system for now. Properly scale touch coordinates based on the viewport. This will be needed to ensure that touch works on external display as well as when the internal display is being used to simulate a different resolution. Change-Id: I1815579a52fcc852c519b5391fc7ab8767c2dc59
nputDispatcher.cpp
nputDispatcher.h
nputListener.cpp
nputListener.h
nputReader.cpp
nputReader.h
nputWindow.h
ests/InputReader_test.cpp
|
d728bf514f257670fcb9aa22c6eaf97626072c93 |
09-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Make display manager tell input system about viewports. The window manager is no longer responsible for telling the input system about the display viewport. Change-Id: I932882bae55decef55f25093bb2a7ebac1620bb1
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
ests/InputReader_test.cpp
|
4fd42e5a90e88e34d2e870852a4d26457a712d16 |
27-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Remove unused "layer" argument from show(). Change-Id: I795edb8889bbacdf20fc54d755034040295f281a
priteController.cpp
|
64a55af0ac700baecb0877235eb42caac59a3560 |
26-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Add plumbing for new surface flinger display API. Cleaned up the implementation of Surface and SurfaceSession to use more consistent naming and structure. Added JNI for all of the new surface flinger display API calls. Enforced the requirement that all Surfaces created by the window manager be named. Updated the display manager service to use the new methods. Change-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2
priteController.cpp
|
0b722fe9ce98d97dbcb6fefd170b85ab7037e528 |
25-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Use new surface flinger API. Change-Id: Ic888577408a59a36481a48010e19c5e77c24e211
priteController.cpp
|
b696de5c10ebcc7bf42d8487fc0e56e0e937754d |
28-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Move and rename user activity event type constants. Change-Id: Ie565808796773b6896e71ddfac6aaaf8031de846
nputDispatcher.cpp
|
037f727f49ddf4f5575f6440799261bd1289eb6e |
26-Jun-2012 |
Jeff Brown <jeffbrown@google.com> |
Improve handling of size and orientation. Some touch device drivers report the range of ABS_MT_ORIENTATION as [0,1]. The Linux multitouch protocol spec says that the 0 value should always be considered vertical. Add a new 'box' calibration mode for size to handle the case where width and height are being provided. The 'diameter' calibration mode is inadequate because it drops one of these components. Change-Id: I7bd744fdff95acd4044d295efe8bd7186dbe8061
nputReader.cpp
nputReader.h
|
22aa51202652efbd55094217a046b8e5ecb7afe2 |
17-Jun-2012 |
Jeff Brown <jeffbrown@google.com> |
Capture input dispatcher's last ANR state in bug report. Some ANR bugs are very difficult to localize because by the time the bug report has been captured, the relevant information is gone. Work around this by capturing a log of the input dispatcher's state at the exact time of the ANR before anything has changed and include this information in the bug report. Also fixed a nit related to some format strings that had improper field widths specified. Bug: 6680398 Change-Id: I5323bf18ec5e47a767cd053209753cc46852bf4c
nputDispatcher.cpp
nputDispatcher.h
|
265f1ccc5128319d81eee70ee2d2ae81573efb11 |
12-Jun-2012 |
Jeff Brown <jeffbrown@google.com> |
Improve ANR diagnostics. When an ANR occurs, log the associated reason. When an event takes too long to process (currently more than 2 seconds) log basic information about the event including how long it actually took. Dump the contents of the inbound, outbound and wait queues as part of dumpsys input. Bug: 6574842 Change-Id: I9ab754c320f609cb86fe266c469a61e7032dfed6
nputDispatcher.cpp
nputDispatcher.h
|
8249fc61837db488191213ac85355287cf8b4fdd |
25-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Don't ANR on hover, scroll or if a window goes away. Prevents ANR on hover or scroll events. Prevents ANR in the case where one finger touches a window which is subsequently removed then a second finger comes along and tries to touch something. Change-Id: I985ccb70cd86659992328f14f8a705f3f05ea2e5
nputDispatcher.cpp
|
286298896bd33e7c44bfca881b64262fcab08c9c |
16-May-2012 |
JP Abgrall <jpa@google.com> |
Merge "Revert "services: input events: enable debugging in EventHub (touch screen issues)"" into jb-dev
|
25a465bb44497682fde84935100e0acf4a0eb5db |
16-May-2012 |
JP Abgrall <jpa@google.com> |
Revert "services: input events: enable debugging in EventHub (touch screen issues)" This reverts commit df0a89daa8018f9dec53d8d766e5a045347ffc93 Get rid of the debugging for the release.
ventHub.cpp
|
8a90e6e3174083f274538567d851f98478fc83e9 |
11-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Minor refactoring before starting on velocity tracker changes. Bug: 6413587 Change-Id: I5eba2bb57193bff78cb3740de5f87aca0b31d154
nputReader.h
ointerController.h
|
571d4cbeec4adad050b8e188770e7e7dedc558f1 |
10-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Merge "Fix bugs in fallback key handling." into jb-dev
|
fd23e3ed976b22b9a92ddb2cb3a46f9d2a0ce23f |
09-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Fix bugs in fallback key handling. If a fallback key is generated using a key plus a modifier, then it's possible we might get a different fallback key generated if the modifier has changed. PhoneWindowManager needs to remember which fallback is last generated for a given key code so that it can apply the same fallback action. When generating cancellation events, it's important to have preserved the policyFlags of the original event. Otherwise we may not dispatch the cancellation properly. For example, some actions are not performed if the POLICY_FLAG_TRUSTED is not specified. Remember the metaState associated with a key event so we can include it when canceled. Tell the policy when a fallback is being cancelled so that it can clean up its state. After a SEARCH shortcut is invoked, clear the flag indicating that a shortcut is pending. This is to prevent SEARCH from getting stuck down in the case where we might forget to send the up. (Shouldn't happen anymore after the prior fixes.) Bug: 5616255 Change-Id: I68f0a9679c7af464eaf31c099f2aa50b53fecf1f
nputDispatcher.cpp
nputDispatcher.h
|
956f9bd0049b86b45868dfbd9b539d3ac35cdec2 |
09-May-2012 |
JP Abgrall <jpa@google.com> |
Merge "services: input events: enable debugging in EventHub (touch screen issues)" into jb-dev
|
df0a89daa8018f9dec53d8d766e5a045347ffc93 |
09-May-2012 |
JP Abgrall <jpa@google.com> |
services: input events: enable debugging in EventHub (touch screen issues) Enable verbose logging, but limit the output of events to only those that are stale by more than 1ms. This does not overly pollute the logcat output. Bug: 6258051 Change-Id: I32012a379ca0e97c0834975482cd91f9eeb08907
ventHub.cpp
|
c042ee2acd8529b95c5dc99240d626e61d2500cd |
08-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Disable input dispatch until boot finished. Bug: 6263070 Change-Id: I25e15e3d8af8eb3343c7b684fec345337d9f6aab
nputDispatcher.cpp
|
a75fe05b6e0728ada82cd18dc3ac1ae3a61a10fb |
02-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Use EVIOCSCLOCKID correctly. Bug: 6382031 Change-Id: I87b0887ce867a79758bcd24e2202280270faaf8c
ventHub.cpp
|
daa3753a04699724d2cfe824ac1f5a266d643a05 |
02-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Improve handling of built-in keyboard. The window manager policy made some incorrect assumptions about the meaning of the Configuration.keyboard field. We need to be more careful about distinguishing between built-in and external keyboards. Most of this change is to move the determination of the parts of the Configuration related to input devices into the WindowManagerService leveraging new features of the InputManagerService to good effect. Then we plumb through the flag that indicates whether a device is internal or external so that we can be more particular about how the lid switch effects changes to the Configuration. Bug: 6424373 Change-Id: I36a1c22ade35e578955465a25940a33f227b9763
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
c3742a18a6106f9c61eba16b00d15efa88f6f51a |
25-Apr-2012 |
Dianne Hackborn <hackbod@android.com> |
am 7086cd5c: am 5600deb7: am d26a8b73: am cda8329e: Merge "Distance max set incorrectly" * commit '7086cd5c75073b75cd4a7d61aaa9f0529450e4e5': Distance max set incorrectly
|
8239940d0efb7e536d932473c535c1d9bb0ab658 |
21-Mar-2012 |
Andreas Sandblad <andreas.sandblad@sonymobile.com> |
Distance max set incorrectly The distance max used in the MotionRange is calculated incorrectly. Looks like a copy-and-paste error. Change-Id: I2b6daab088df0fb69e05682b67ca33524ff35987
nputReader.cpp
|
5bbd4b4f5fc19302fa017ad6afee6eb2d489d91a |
21-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Get alias for Bluetooth devices. Bluetooth devices can be renamed by the user. Make the input system aware of the user-specified name and transparently pass it down to applications. This enables the keyboard layout picker Settings UI to use device names that are consistent with what the user set in the Bluetooth UI. Bug: 6363157 Change-Id: I8eea26ce2c69c2a3f09c8de02e9e847610e0419c
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
f44e39493c471b5e6a0807778c7a6439ea1b8adc |
20-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
When ANR happens, only remove ANR'd window. The system bar uses input event injection to inject BACK keys into the application. If the receiving application ANRs, we used to clear the touch state unconditionally. Doing so would prevent the system bar from receiving the ACTION_UP event so the back button would continue to appear pressed until pressed again. Now we are more careful to only remove the specific ANR'd window from the touch state. Other windows should continue to receive touch events as usual. Change-Id: If86bfc323e2c7aed82ca1334bc67da649953168f
nputDispatcher.cpp
nputDispatcher.h
|
00710e906bdafd58386ee7f81fa84addd218122f |
20-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Make InputDevice.SOURCE_STYLUS meaningful. Bug: 5424551 Change-Id: I415cb1842422e050cc41b17f5a1f13b4fab17a44
nputReader.cpp
nputReader.h
|
61c08240585a6186b4bd879d87f238b3efc368f8 |
19-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Don't load keyboard layout overlay for virtual keyboard. Bug: 6110399 Change-Id: I07c85cf991790ed8766b097acc39295a8065a5ea
ventHub.cpp
nputReader.cpp
|
426f905b840a710314cc4e91ea4f03bd0c4bcbfb |
18-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Fix build. Change-Id: I277042c91b34af59e70941fd5b458581310b1c22
ests/InputReader_test.cpp
|
4a3862f6b0a8971b6ab5b1c46735b28e7604d0db |
18-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Add Dvorak keyboard layout. Added support for mapping both scan codes and HID usages to KeyLayoutMap and KeyCharacterMap. Keyboard overlays can now influence how key events are mapped to key codes. Bug: 6110399 Change-Id: I6619fd2d3e1337c55928f89869dbc45b535c7ccf
ventHub.cpp
ventHub.h
|
6ec6f79e1ac1714e3b837796e99f07ff88f66601 |
18-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Support loading keyboard layout overlays from resources. Added the concept of a keyboard layout overlay, which is a key character map file that has "type OVERLAY". Added support for loading keyboard layout overlays from resources dynamically. The layouts are reloaded whenever they are changed in the Settings application or an application is installed. This is somewhat more aggressive than necessary so we might want to optimize it later. Before system-ready, the input system uses just the generic keyboard layouts that are included on the device system image. After system-ready, it considers the user's selected keyboard layout overlay and attempts to load it as necessary. We need to wait until system-ready before doing this because we need to be in a state where it is safe to start applications or access their resources. Bug: 6110399 Change-Id: Iae0886d3356649b0d2440aa00910a888cedd8323
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
a47425a13c19f95057df78b8bb65bb25657e8753 |
13-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Add support for input devices that have vibrators. Added a getVibrator() method to InputDevice which returns a Vibrator associated with that input device. Its uses the same API as the system vibrator which makes it easy for applications to be modified to use one or the other. Bug: 6334179 Change-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b |
13-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Notify applications when input devices change. This change allows the InputManager to keep track of what input devices are registered with the system and when they change. It needs to do this so that it can properly clear its cache of input device properties (especially the key map!) when changes occur. Added new API so that applications can register listeners for input device changes. Fixed a minor bug in EventHub where it didn't handle EPOLLHUP properly so it would spam the log about unsupposed epoll events until inotify noticed that the device was gone and removed it. Change-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3
ventHub.cpp
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
cc1169831921d9295b2fc01c1eaf7e9b00836f53 |
12-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
HID usage should take precedence over scan code. Change-Id: Ibd8988e3dcc0d64f4019ffe491d9789733f9d243
ests/InputReader_test.cpp
|
49ccac530b5a798e3c4a79b66b51b8546a0deed1 |
12-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Refactor key code mapping. Added handling for EV_MSC / MSC_SCAN which typically reports the HID usage associated with a key. This will enable key maps to map keys with HID usages that Linux does not natively recognize. Removed keyCode and flags fields from EventHub RawEvent since they don't necessarily make sense in isolation now that we pay attention to HID usage codes too. Removed the fallback code for mapping keys and axes. In practice, an input device should be self-sufficient. We should not ever need to look at the built-in keyboard's key map. In fact, there usually isn't a built-in keyboard anyhow. This code was originally working around a problem where we weren't loading the key map for touch screens with virtual keys, which has long since been fixed. Change-Id: I0a319bdec44be9514f795526347397e94d53a127
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f |
10-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Request key maps from input manager service. Instead of each application loading the KeyCharacterMap from the file system, get them from the input manager service as part of the InputDevice object. Refactored InputManager to be a proper singleton instead of having a bunch of static methods. InputManager now maintains a cache of all InputDevice objects that it has loaded. Currently we never invalidate the cache which can cause InputDevice to return stale motion ranges if the device is reconfigured. This will be fixed in a future change. Added a fake InputDevice with ID -1 to represent the virtual keyboard. Change-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7
ventHub.cpp
ventHub.h
nputReader.cpp
ests/InputReader_test.cpp
|
eca3cf58c096d5a4ba4ae80318f72266c21a9a6d |
07-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Use new EVIOCSCLOCKID ioctl if supported. Bug: 6292993 Change-Id: I718f167c2cd41298ed54847dbc5de872cd4c7e4a
ventHub.cpp
|
e38fdfae9196afd1bdc14c5ec6c12793af1e2550 |
06-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Add a unique input device descriptor. The purpose of the input device descriptor is to make it possible to associate persistent settings for each input device, such as the keyboard layout. The descriptor is a hash of the information we have about the device, such as its vendor id, product id, unique id, name, or location. Bug: 6110399 Change-Id: Idb80f946819b3f0dbf4e661bb0a753dbc2b60981
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
481c1570dc5cdf58265b53f657801709dd05d1df |
09-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Add Java wrappers for new atrace functionality. Instrument a few parts of the input dispatcher and the view hierarchy. Change-Id: I49285c9fb3502253baa1ffed60f521b8c24fccaf
nputDispatcher.cpp
nputDispatcher.h
|
8335f1ccccedb6655d96d9d5b697a7f0938235dd |
26-Feb-2012 |
Mathias Agopian <mathias@google.com> |
fix libgui header location Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
priteController.h
|
83c64e6b624a876436d2ef5d2f173b10407e27b4 |
21-Feb-2012 |
Mathias Agopian <mathias@google.com> |
frameworks/base refactoring create the new libandroidfw from parts of libui and libutils Change-Id: I1584995616fff5d527a2aba63921b682a6194d58
ndroid.mk
ests/Android.mk
|
b93a03f841d93498bfea6cc92a22faa34bce1337 |
18-Feb-2012 |
Mathias Agopian <mathias@google.com> |
frameworks/base refactoring. First step. Move libui includes to their new home: androidfw. Change-Id: Ic042b52fdba72f30edc3cc6339bf30b4c1b99662
ventHub.cpp
ventHub.h
nputApplication.h
nputDispatcher.cpp
nputDispatcher.h
nputListener.h
nputManager.h
nputReader.cpp
nputReader.h
nputWindow.h
ointerController.h
|
91e328984c0d1e0f95b3d37f779d9d4fa9bfe8f8 |
15-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Clean up InputChannel file descriptor data type. File descriptors are ints. Change-Id: Ie36733bf36ddfeaa9a09ef6ebd7bd2f1788f5d27
nputDispatcher.cpp
|
0952c30ac279d5f4cdc032fcbafa372213aa6d86 |
13-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Don't serialize motion events. On reflection, only key events need to be serialized. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I028b4eac97497d012036cb60ffbac4cb22d3966c
nputDispatcher.cpp
nputDispatcher.h
|
072ec96a4900d4616574733646ee46311cb5d2cb |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Implement batching of input events on the consumer side. To support this feature, the input dispatcher now allows input events to be acknowledged out-of-order. As a result, the consumer can choose to defer handling an input event from one device (because it is building a big batch) while continuing to handle input events from other devices. The InputEventReceiver now sends a notification when a batch is pending. The ViewRoot handles this notification by scheduling a draw on the next sync. When the draw happens, the InputEventReceiver is instructed to consume all pending batched input events, the input event queue is fully processed (as much as possible), and then the ViewRoot performs traversals as usual. With these changes in place, the input dispatch latency is consistently less than one frame as long as the application itself isn't stalled. Input events are delivered to the application as soon as possible and are handled as soon as possible. In practice, it is no longer possible for an application to build up a huge backlog of touch events. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I42c01117eca78f12d66d49a736c1c122346ccd1d
nputDispatcher.cpp
nputDispatcher.h
|
1adee11b5e644c74a2ed40344f4836de3bd3ac56 |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Optimize dispatcher for back-to-back finished signals. Minor tweak to the dispatcher to handle as many finished signals in a receive callback as possible instead of going back to the Looper and waiting for the next poll() to hit the callback again. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I8471107371693e21ce8ce7cca1e8d79ba4ca2351
nputDispatcher.cpp
|
d1c48a0525d05021036d4b14e937e221c0ae1318 |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Dispatch multiple touch events in parallel. This change enables the input dispatcher to send multiple touch events to an application without waiting for them to be acknowledged. Essentially this is a variation on the old streaming optimization but it is much more comprehensive. Event dispatch will stall as soon as 0.5sec of unacknowledged events are accumulated or a focused event (such as a key event) needs to be delivered. Streaming input events makes a tremendous difference in application performance. The next step will be to enable batching of input events on the client side once again. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I025df90c06165d719fcca7f63eed322a5cce4a78
nputDispatcher.cpp
nputDispatcher.h
|
8b4be56030c3b8c93dfa45bccac7365f90f377ce |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Delete premature optimization. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I5c182f6e17d468bf3033125b2094b2baa5b94e81
nputDispatcher.cpp
nputDispatcher.h
|
28b5cf1c33df847d667b8974ba07c4157a49b48a |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Delete dead code. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I9f8b93f6a25ddd872f993366b57bab404c93bede
nputDispatcher.cpp
nputDispatcher.h
|
59f1ff99786e9d4a94270d6752aa3ca61e10f0a6 |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Delete latency tracking information in the Connection. The information gathered here will no longer be valid once we start dispatching multiple events at a time to the same connection. Moreover, we are more concerned with end-to-end latency, which we can measure with sufficiently high accuracy in other ways. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I49a0c9876b64af56b40e96e0d98c45f325da2a73
nputDispatcher.cpp
nputDispatcher.h
|
9831d90db8fba7e967d22b1f86eea1d6ac831541 |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Remove active connection tracking. The dispatcher no longer needs to track which connections are active except perhaps for diagnostic purposes, so we might as well remove this code. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: Ibadc830b7b792a59b9244d0a6e85f320c4947109
nputDispatcher.cpp
nputDispatcher.h
|
e9bb9be9e46523ed901e38cfa83f4630f6496418 |
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Simplify input target handling in the dispatcher. Since we no longer stream events to the application, we don't need to keep the current list of input targets around longer than it takes to begin the dispatch cycle. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I5824b04e564c8a4dec991598292441e46c331905
nputDispatcher.cpp
nputDispatcher.h
|
cbee6d6ede0499fb4a2c00bfc00d5db8d9ed5139 |
04-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Rewrite input transport using sockets. Since we will not longer be modifying events in place, we don't need to use an ashmem region for input. Simplified the code to instead use a socket of type SOCK_SEQPACKET. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I05909075ed8b61b93900913e44c6db84857340d8
nputDispatcher.cpp
nputDispatcher.h
|
3241b6b7bd7eff64f0118ba2d636030e505a98f9 |
04-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Remove batching and streaming from the input dispatcher. Don't worry, these features will be moving to a different part of the pipeline. We're just getting them out of the way for now so we can make deeper changes to how the input dispatcher works. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: If97de923c8165776882eef23f5204cc448dad0fc
nputDispatcher.cpp
nputDispatcher.h
|
308028049a75b36d5ed525c0bcef441da850c2a5 |
03-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Remove the input dispatcher throttle. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: Iab33594bc5df8aa05232ef64c64e98fc61c5bf52
nputDispatcher.cpp
nputDispatcher.h
|
ed73440416eac56f20054239d6e8480caae1b6d3 |
31-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
Merge "Use O_CLOEXEC when opening input device."
|
dd3ba4384325ca0bb7417073b6a11a991829f2ea |
31-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
Merge "Add basic support for new suspend-block ioctls."
|
112b5f52c5a4b6743eeb7b26a8896c7636c74455 |
28-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
Improve watchdog monitor for InputReader and InputDispatcher. Try harder to test for liveness. There are situations where the lock might not be held but the input system is stuck in a callback into the window manager policy that has hung. Bug: 5094994 Change-Id: Iff88655512a5dc8bbb4615be65f4115e975c020b
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
nputReader.h
|
06a0fb953ff1c544bdbef2618d20ec1ba551eb6e |
20-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
am 5d58eb06: Merge "Fix a few memory leaks in the input dispatcher. (DO NOT MERGE)" into ics-mr1 * commit '5d58eb06bcc8671bae72fb2389a9929e106131cc': Fix a few memory leaks in the input dispatcher. (DO NOT MERGE)
|
f68633da3ced654a9344b5c3b82f4d1c79b6bd09 |
09-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename LOG_ASSERT to ALOG_ASSERT Change-Id: Ie2c7ea6560656d65bad791a61996174c75677517
ventHub.cpp
nputDispatcher.cpp
nputReader.cpp
|
c6aacce37191e1cc79cfeba13b39899f59c68c3b |
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) Change-Id: I1de629b4632a4b3187ca1a28d6416daccd35f924
ventHub.cpp
nputDispatcher.cpp
nputManager.cpp
priteController.cpp
|
a51f0e707f1f3142358aa919ea60ad2842803139 |
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) Change-Id: I8fbdfa7a7581f481968dbb65aa40f7042936d7cb
ventHub.cpp
nputDispatcher.cpp
nputManager.cpp
nputReader.cpp
|
933e85615059b85a87747da57288384541cc56da |
04-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) Change-Id: I26f76452ac49e2890b14d133c065493d8df0fb4a
ventHub.cpp
nputDispatcher.cpp
nputReader.cpp
|
1afd5bab4e0eaba8b5bc2ab5c7b556cd602cf2e7 |
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) Change-Id: I44f267700356967dc51e8f85ebf457dc85cfb229
ventHub.cpp
nputDispatcher.cpp
nputReader.cpp
ointerController.cpp
|
06ade6ae1bd015e8b8ad0685847911213c93cc5b |
20-Oct-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) Change-Id: I5321ebd12e9c6248a108529e82c4e1af2a4405e3
ventHub.cpp
nputDispatcher.cpp
|
874c1e9aa598b45e7114a69ecb4194c167a8b39d |
19-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
Use O_CLOEXEC when opening input device. Change-Id: I931614ef4fe2143c9e124c3239d74a4a2ce3816c
ventHub.cpp
|
e22afbedc1a71905d112d8cf78ca8c2a27e371fe |
16-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Add basic support for new suspend-block ioctls. The new ioctls will enable the system to be more selective about which evdev devices should hold wake-locks when their queue is non-empty. For now, we enable this behavior for all configured input devices, which is more or less the status quo. This change is mainly about ensuring that the system still works correctly when combined with a newer kernel that supports the suspend-block ioctls. We can tweak this behavior later. Change-Id: I8ff69aa5198903f7e2998772a339313df17c0f24
ventHub.cpp
|
214f459b2c35ac0d95ad8ae9e2a68b94807ceba0 |
23-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Remove no longer needed EventHub usleep() optimization. This optimization is no longer needed now that the kernel evdev driver's poll() implementation only wakes up the poll after the final sync. Change-Id: If237776861df9cfac3086e744d3bbf3484d4c53b
ventHub.cpp
ventHub.h
|
4130554b452a8462a83f97051240f1aec8590650 |
05-Oct-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix line wrapping. Change-Id: I41199d1145d2435eee046a7e5006dcdce0986821
ventHub.cpp
|
9f63f121bdc0db64f9dd2be9db792a8698bb0d67 |
13-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
Fix a few memory leaks in the input dispatcher. (DO NOT MERGE) Bug: 5862398 Change-Id: I799ee47b6e5d6c51f45aa4296c6ab8a610b74be5
nputDispatcher.cpp
nputDispatcher.h
|
c0cb3dc2c16883f19bf1caf652b2fcdb55a1a856 |
13-Jan-2012 |
Jeff Brown <jeffbrown@google.com> |
Fix a few memory leaks in the input dispatcher. Bug: 5862398 Change-Id: Iae3284a223b8307f541a7987f90f5b28e70b9244
nputDispatcher.cpp
nputDispatcher.h
|
ec193dec4d9ca2cfc8295c4becfe950a906a15ed |
09-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename LOG_ASSERT to ALOG_ASSERT DO NOT MERGE See https://android-git.corp.google.com/g/157519 Bug: 5449033 Change-Id: I8ceb2dba1b031a0fd68d15d146960d9ced62bbf3
ventHub.cpp
nputDispatcher.cpp
nputReader.cpp
|
3762c311729fe9f3af085c14c5c1fb471d994c03 |
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
ventHub.cpp
nputDispatcher.cpp
nputManager.cpp
priteController.cpp
|
8564c8da817a845353d213acd8636b76f567b234 |
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
ventHub.cpp
nputDispatcher.cpp
nputManager.cpp
nputReader.cpp
|
6215d3ff4b5dfa52a5d8b9a42e343051f31066a5 |
04-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
ventHub.cpp
nputDispatcher.cpp
nputReader.cpp
|
5baa3a62a97544669fba6d65a11c07f252e654dd |
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
ventHub.cpp
nputDispatcher.cpp
nputReader.cpp
ointerController.cpp
|
fa7fa9a5ba796eabb2dadb8e2ce1b97da38e939e |
09-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
am 944c985b: am e0e9fd98: Merge "Fix system hotkey handling." into ics-mr1 * commit '944c985b4199e6e029568ea87004c9727e469cc0': Fix system hotkey handling.
|
68b909d8acd92343fa0b1dff2f77fcd9d9991f9f |
08-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix system hotkey handling. Fixed a problem where the key up for the ALT or META key was not delivered to the task switcher dialog because it was deemed to be inconsistent with the window's observed state. Consequently the dialog would not be dismissed when the key was released. Moved global hotkey handling for META+* shortcuts and ALT/META-TAB into the window manager policy's interceptKeyBeforeDispatching method. This change prevents applications from hijacking these keys. The original idea was that these shortcuts would be handled only if the application did not handle them itself. That way certain applications, such as remote desktop tools, could deliberately override some of these less important system shortcuts. Unfortunately, that does make the behavior inconsistent across applications. What's more, bugs in the onKeyDown handler of applications can cause the shortcuts to not work at all, for no good reason. Perhaps we can add an opt-in feature later to enable specific applications to repurpose these keys when it makes sense. Bug: 5720358 Change-Id: I22bf17606d12dbea6549c60d20763e6608576cf7
nputDispatcher.cpp
|
221096fdd6963a0f7090b928cfb92b9267f32d7a |
16-Nov-2011 |
Jeff Brown <jeffbrown@google.com> |
am 4c0e0dd2: am 3e7497b4: Merge "Eliminate hw.keyboards system properties." into ics-mr1 * commit '4c0e0dd29dcce33e7521b11d01d21d9431f3b264': Eliminate hw.keyboards system properties.
|
1e08fe90df18930691b0c2ec22e5db25d7fcb4cf |
16-Nov-2011 |
Jeff Brown <jeffbrown@google.com> |
Eliminate hw.keyboards system properties. Stop using system properties to publish information about the key character map path. Instead, we can retrieve it on demand by asking the window manager. It was possible to exhaust the supply of system properties when repeatedly adding and removing input devices. Bug: 5532806 Change-Id: Idd361a24ad7db2edc185c8546db7fb05f9c28669
ventHub.cpp
ventHub.h
nputReader.cpp
ests/InputReader_test.cpp
|
fbca596721ea19daa2972639095898ce62100490 |
14-Nov-2011 |
David Deephanphongs <dpanpong@google.com> |
Modify getState to prefer AKEY_STATE_DOWN and AKEY_STATE_UP over AKEY_STATE_UNKNOWN. For the getState() routines that operate on multiple devices / mappers: Return AKEY_STATE_DOWN (or AKEY_STATE_VIRTUAL) if any of the devices/mappers have the key down. Otherwise, return AKEY_STATE_UP if at least one device/mapper returns AKEY_STATE_UP. Otherwise, return AKEY_STATE_UNKNOWN. Change-Id: I1ef6251d73af916b51f408a41c5e4adf5bdc237a
nputReader.cpp
|
a965f083d09bf247cbfc880c0435e4a04c3e4e18 |
08-Nov-2011 |
Jeff Brown <jeffbrown@google.com> |
Delete dead code. Change-Id: Ia78e338a363ab82f9c0b45ce324c2a7cfa8d8246
nputDispatcher.cpp
|
71f2cf116aab893e224056c38ab146bd1538dd3e |
20-Oct-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
ventHub.cpp
nputDispatcher.cpp
|
905805ad7ce18a386076fff99264f821bbad9f83 |
12-Oct-2011 |
Jeff Brown <jeffbrown@google.com> |
Improve screenshot chord debouncing. Bug: 5011907 Introduce a 150ms delay in handling volume down keys while waiting to see if a power key will follow. Don't trigger the screenshot chord if both volume up and volume down are pressed together. Don't trigger the long-press power menu if volume keys are also pressed. Require the user to press both keys in the chord within the debounce time and continue long-pressing them in order to trigger the screenshot action. Change-Id: I248968d37b73c09d6d08e7f62667c443eba32da0
nputDispatcher.cpp
nputDispatcher.h
ests/InputDispatcher_test.cpp
|
e8b7f4a20c43d8f55d0cf85a94363b764ba598b8 |
27-Sep-2011 |
Dima Zavin <dima@android.com> |
eventhub: print debugginf info when removing device Change-Id: I40bbbd3867e8c7ac7d6fb38e1c72432bb4963316 Signed-off-by: Dima Zavin <dima@android.com>
ventHub.cpp
|
bfcb60ab0f696c8ef70830c365550e62fe2808bf |
09-Sep-2011 |
Jeff Brown <jeffbrown@google.com> |
Adjust layers for system overlays. Prevent system overlays from showing above the notification bar. Allow secure system overlays to be fullscreen, for the pointer location view. Show the drag layer above the notification bar. Change-Id: Ic8d663792a243cca2cd9952d241d001e0357d551
nputWindow.h
|
3cdfc4d94f6af82953f0e722ade882197c72da58 |
01-Sep-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Support composite touch / joystick devices better."
|
9d4bc852ea459c2a4347a87ce0357b3328a25db8 |
31-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Fix input channel leak. Bug: 5156144"
|
9ee285afe740ff13d176c9d8430979dfd9575a23 |
31-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Support composite touch / joystick devices better. This change enables the joystick input mapper to handle any axes that are not claimed by the touch input mapper, which makes auxiliary controls such as wheels / knobs accessible. Change-Id: I01ee7f342ac91acfcb4ccb6676fd52b3d5bf31a0
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
cc4f7db698f88b633a286d8ab1105b28a474cd09 |
31-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix input channel leak. Bug: 5156144 Input channels could leak or simply live longer than they should in some cases. 1. Monitor channels (used by the pointer location overlay) are never unregistered, so they would leak. Added code to handle failures in the receive callback by closing the input channel. 2. The DragState held onto its input window and application handles even after the input channel was disposed. Added code to null these handles out when they are no longer needed. 3. Input channels previously used as input event targets would stick around until the targets were cleared (usually on the next event). Added code to detect when the input dispatcher is in an idle state and to proactively clear the targets then to ensure that resources are released promptly. 4. Native input window handles held onto the input channel even after the input window was removed from the input dispatcher. Consequently, the input channel would not be disposed until the input window handle itself was freed. Since the input window handle is held from managed code, this meant that the window's input channel could stick around until the next GC. Refactored the input window handle to separate the properties (info) and identify (handle) state into different objects. Then modified the dispatcher to release the properties (info) when no longer needed, including the input channel. 7. The pointer location overlay does not actually use its standard input channel, only the monitor input channel. Added INPUT_FEATURE_NO_INPUT_CHANNEL to allow windows to request that they not be provided with an input channel at all. Improved some of the error handling logic to emit the status code as part of the exception message. Change-Id: I01988d4391a70c6678c8b0e936ca051af680b1a5
ndroid.mk
nputApplication.cpp
nputApplication.h
nputDispatcher.cpp
nputDispatcher.h
nputWindow.cpp
nputWindow.h
|
e81056f35041de24adad9bc5384b9e8f72bf95f6 |
30-Aug-2011 |
Max Braun <braun@google.com> |
Pick up device configuration "device.internal = 0". Before, only "device.internal = 1" had an effect. Change-Id: Ie88ed66e0841418c147bed2e23806405bdd17ad6
ventHub.cpp
|
8d3feb6292ba7e87adeb4982e8cf27114a8ee2e4 |
29-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Add a "show touches" option for demos and presentations. Bug: 4569045"
|
deffe07c225c15ce780fad4a500d082f2dbdabea |
27-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Prioritize INPUT_PROP_DIRECT first. If the device tells us it's really direct, then it's direct. Change-Id: I83875cf47e865ff6f0def149ad0c68db24d9dc4a
nputReader.cpp
|
daf4a127ba2af82a3fb477044b872719a0ab1827 |
27-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Add a "show touches" option for demos and presentations. Bug: 4569045 Change-Id: I8726ea292dd7def790a5e40d7d7e58968974f896
nputReader.cpp
nputReader.h
|
c28306ad4ac9ce7a7d5f10c2e38d422ffc309a1f |
24-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Improve input device wake heuristics. Bug: 5205674 Only wake the device on positive interactions from the user such as button presses, movement, initial touch down events. In particular, do not wake the device on up events since the driver might synthesize them on power off, causing the device to wake up again for no good reason. Change-Id: I767f553ea36d110e6f3a10611b324487ba7d880d
nputReader.cpp
|
9cc695c5796cf93b414fd7627eb049b7b57d15be |
24-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Clean up InputDispatcher debugging. Change-Id: I020e834bfb541a1f274e26a72705f96f4307dddf
nputDispatcher.cpp
|
ea6892e02e10a57673a42f0922ad28694595dcaa |
24-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Support BTN_TOOL_*TAP as synonyms for BTN_TOOL_FINGER. Bug: 5205301 Some drivers report one finger as BTN_TOOL_FINGER, two as BTN_TOOL_DOUBLETAP, three as BTN_TOOL_TRIPLETAP and four as BTN_TOOL_QUADTAP. Since we care about the tool type, we need to handle _DOUBLE/_TRIPLE/_QUAD tap in the same way we handle _FINGER. Change-Id: I8eb83d2a2bada9ac32d07619c7eea84e924316b8
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
a66cee134e2ad8a6d100e0e3eefa2c2a341ed7cc |
20-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix tap gesture on touch pads. Change-Id: I92b23e5971d4b98b173aacd64fe03ce9f0755c88
nputReader.cpp
|
65fd251c3913fc921468a3dad190810db19eb9df |
18-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Input system bug fixes, particularly for stylus. Bug: 5049148 Finished stylus support, including support for indirect stylus and mouse tools. Added TILT axis. When stylus tilt X/Y is available, it is transformed into an orientation and tilt inclination which is a more convenient representation and a simpler extension to the exiting API. Touch devices now only report touch data using a single input source. Previously touch devices in pointer mode would report both absolute touch pad data and cooked pointer gestures. Now we just pick one. The touch device switches modes as needed when the focused application enables/disables pointer gestures. This change greatly simplifies the code and reduces the load on the input dispatcher. Fixed an incorrect assumption that the value of ABS_(MT_)DISTANCE would be zero whenever the stylus was in direct contact. It appears that the correct way to determine whether the stylus is in direct contact (rather than hovering) is by checking for a non-zero reported pressure. Added code to read the initial state of tool buttons and axis values when the input devices are initialized or reset. This fixes problems where the input mapper state might have the wrong initial state. Moved responsibility for cancelling pending inputs (keys down, touches, etc.) to the InputDispatcher by sending it a device reset notification. This frees the InputReader from having to synthesize events during reset, which was cumbersome and somewhat brittle to begin with. Consolidated more of the common accumulator logic from SingleTouchInputMapper and MultiTouchInputMapper into TouchInputMapper. Improved the PointerLocation output. Change-Id: I595d3647f7fd7cb1e3eff8b3c76b85043b5fe2f0
nputDispatcher.cpp
nputDispatcher.h
nputListener.cpp
nputListener.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
755bd67a5081727ae1bbee2d39863b464a8b4f35 |
17-Aug-2011 |
Christopher Tate <ctate@google.com> |
Merge "Don't crash if a drag recipient throws an uncaught exception"
|
d9be36c897680361da2daadba9bbc9da3c16329b |
17-Aug-2011 |
Christopher Tate <ctate@google.com> |
Don't crash if a drag recipient throws an uncaught exception There turn out to be two distinct bugs leading to runtime restarts. The first, dating from at least Android 3.1, is that following certain kinds of app crashes we properly clean up the drag-state bookkeeping, but aren't prepared in the case of the drag-target timeout clock firing with a now- null drag state in effect. We now catch that edge condition and don't NPE (and note that there was already similar code around the separate timeout when an app is *starting* the drag process). The second bug is that some new-in-ICS code in the input channel management wasn't prepared for certain cases where the current touch window could have become unusable and its input channel torn down summarily in the case of the aforesaid app crash during drag. The code now makes sure that there really is an input channel that needs to be flushed / cancelled prior to attempting that operation. Fixes bug 5173534 Change-Id: Idaae158ecfb4b93456ab1425769b669962893c00
nputDispatcher.cpp
|
abb4d446a10b2defd342b1a2fa6462b52b82cdef |
15-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix blocked event handling in InputDispatcher. Bug: 5161854 The InputDispatcher contains code to recover from ANRs more quickly when the user touches a different application. When triggered, it sets mNextUnblockedEvent to the next event it should dispatch (to the next application). All prior events are dropped. This change fixes a bug where mNextUnblockedEvent could potentially never be reset back to NULL if the inbound queue was drained for some reason. Change-Id: I21be2f02c9fc770bd260ea414db8bb184df89ada
nputDispatcher.cpp
|
063097545e6a273952463803d1a2fab2cb590d4e |
12-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Ensure outValue is set, even when an error occurs. Change-Id: If883f60cde28792bd0e108597ced49d69d13136e
ventHub.cpp
|
8bcbbefa3b4e149099b2057547543ea95a7be400 |
12-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Exorcise notification panel ghosts. Bug: 5105599 Don't clear slot data when slot is no longer in use. The kernel will not resend absolute slot values if they are unchanged, even if the slot was previously marked unused. Because the protocol is stateful, this could cause problems if evdev drops events (marked by SYN_DROPPED) since we cannot query the initial values of the slots, but there's nothing we can do. Change-Id: Ie13e68097fb8ed2542c2f60338b499082cf9e77f
nputReader.cpp
nputReader.h
|
a1f89ceec076392da409e9f389b33e62e1d92da6 |
11-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Improve touch device configuration. Bug: 5064702 This change improves compatibility with standard touch device drivers. All existing touch device IDC files will need to be updated because the input system now assumes that the touch device drivers implement the multitouch input protocol correctly and use the appropriate axes. Change-Id: I93aad0e011efea74fbc7fa3da31f7967aff8136c
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
89ef0720ee8e0ac6ae1758faa917e4d6c9606fb4 |
11-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Add input system to Watchdog. Bug: 5094994 Change-Id: I153866958efc64ac19bda8b997c1c9f6ad425ec4
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
ba421dddfd558b34726df5dfbf8a3bf748e285b1 |
11-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix getSwitchState and others to check bitmasks. Bug: 5149443 Removed some dead code and unnecessary checks, such as checks for non-nullity of arrays that used to be dynamically allocated once upon a time but are now part of the Device object itself. Change-Id: I531116e816772d7c5030d22da0c8e1d7dcfba778
ventHub.cpp
ventHub.h
|
d87c6d5fd5e620ecb1a7a401d2b31c6cf2e1a851 |
10-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Use BTN_TOUCH or BTN_TOOL_* to determine if touch active. Bug: 5064702 Should not include stylus buttons in the condition. Change-Id: If4d78a875b77da8bd59672d6fdbf5353004d0023
nputReader.cpp
nputReader.h
|
be1aa8250cee7819c49741e819e81659d1d03823 |
28-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Refactor input reader to add stylus support. Bug: 5064702 Introduced the concept of an InputListener to further decouple the InputReader from the InputDispatcher. The InputListener exposes just the minimum interface that the InputReader needs to communicate with the outside world. The InputReader passes arguments to the InputListener by reference, which makes it easy to queue them up. Consolidated all of the InputReader locks into one simple global Mutex. The reason this wasn't done before was due to potential re-entrance in outbound calls to the InputDispatcher. To fix this, the InputReader now queues up all of the events it wants to send using a QueuedInputListener, then flushes them outside of the critical section after all of the event processing is finished. Removing all of the InputMapper locks greatly simplifies the implementation. Added tests for new stylus features such as buttons, tool types, and hovering. Added some helpers to BitSet32 to handle common code patterns like finding the first marked bit and clearing it. Fixed a bug in VelocityTracker where the wrong pointer trace could get cleared when handling ACTION_POINTER_DOWN. Oops. Changed PointerCoords so it no longer stores useless zero axis values. Removed editAxisValue because it is not very useful when all zero value axes are absent and therefore cannot be edited in place. Added dispatch of stylus hover events. Added support for distance and tool types. Change-Id: I4cf14d134fcb1db7d10be5f2af7b37deef8f8468
ndroid.mk
nputDispatcher.cpp
nputDispatcher.h
nputListener.cpp
nputListener.h
nputReader.cpp
nputReader.h
ointerController.cpp
ests/InputReader_test.cpp
|
00fd1fc9b38a2e59b5ab5ad3f19a6e581dc5f428 |
28-Jul-2011 |
Ying Wang <wangying@google.com> |
Merge "Fix uses of all-subdir-makefiles"
|
d84d6c7b1acb527c289b5ed7fcebe2ee6a5a01ff |
28-Jul-2011 |
Ying Wang <wangying@google.com> |
Fix uses of all-subdir-makefiles We should use all-makefiles-under instead. all-subdir-makefiles can be used only before any "include" statement. Before this change, both subdirs were actually not included. Change-Id: I6bf35d07f294a5012c9322096f999ac26e37432f
ests/Android.mk
|
5ea29ab7efa9a9ae22345f15a7cb9be3c5e1bbf5 |
27-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Reset input dispatcher targets when focus changes apps. This fixes an issue where an ANR can occur in a newly focused application through no fault of its own, simply because the previous app took a little while to transfer focus to the new app. Bug: 4584620 Change-Id: If3227eb68d92a09a108e9de7f0afcbd9a5dbdead
nputDispatcher.cpp
|
bc68a59c024bdb745dac8e2ec7408a9f30595f1a |
25-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Report the external display size to the input reader. The input reader needs this information so that it knows how to interpolate touches on an external touch screen. Changed Display so that it asks the WindowManager what the real display size is (as opposed to the raw display size). This means it now takes into the forced display size set by adb shell am display-size. Replaced all calls to getRealWidth() / getRealHeight() / getRealMetrics() in the WindowManager and replaced them with direct usages of the mCurDisplayWidth / mCurDisplayHeight so that the WM doesn't end up making a reentrant Binder call into itself. Fixed the table status bar HeightReceiver so that it updates the height on all configuration changes since it is possible that the display size changed independently of an external HDMI display being plugged / unplugged. Improved the Display class documentation to make the distinctions betweeen the various sizes clearer. Change-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
49754db5a304d995c1cc108ff6f19e4ba4265572 |
02-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Handle stylus buttons and tool types. Added TOOL_TYPE_ERASER. Refactored the InputReader to share more code between the various input mappers that handle button states and to simplify the accumulator implementations by having each one only handle a single type of input. Removed the concept of direct/indirect tool types from the API. If we add it back, it should be done in a manner that is orthogonal to the tool type itself, perhaps as a flags field on the pointer. The device source may well provide sufficient information anyhow. Change-Id: I811c22d95e8304269b6ee4f6d11a6b04f3cfc1b2
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
44e504e089b7483448c386741c5ee31d2c325400 |
22-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Drop hack for drivers that emit zero ABS_MT_TOUCH_MAJOR. Bug: 5064702 When using Linux MT Protocol A, drivers are supposed to omit fingers that go up and to send an empty sync with no fingers (can be just an SYN_MT_REPORT / SYN_REPORT) when no fingers remain. This makes Android more compliant with the protocol standard. Change-Id: I5775feb14ab7db015824a32b1e2c015da239385d
nputReader.cpp
|
ac386073df2514b79a2ca169f4a89f129733002f |
21-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Remove unimplemented memory pool. dlmalloc does such a great job that we don't need a pool anyways. Change-Id: I105b28c4a5c491543959190c7c0a9de75a5b8052
nputDispatcher.cpp
nputDispatcher.h
|
612891e07bf578a6c4e1b08200f21d8d861ab5ec |
16-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Add support for orientationAware touch pads. Bug: 5038388 Change-Id: I9c571b1542299334d2d64c5b33e456ec20ebc0ae
nputReader.cpp
|
6069139356ceb4d257f749954a2220b1f4fbf9cb |
16-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Remove more edge flag cruft. Change-Id: I4f9f4f4cc7c771a918aee82a941a3e86ecfe48fe
nputReader.cpp
|
a6111377e1edbc5d63fc2a7205d58b2d9c21d978 |
15-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Remove edge slop support. The edge slop feature was added a long time ago for a specific device that had severe non-linear touch response issues near the edges of its touch screen. The feature is not useful on modern hardware that is property calibrated. Change-Id: I26716cbc7411c31883ddb4bb4ddd981027790d0f
nputReader.cpp
nputReader.h
|
9302c8796fc4dcda08d4bd1e11733848fd4fafaf |
14-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Refactor input dispatcher use of window/app handles. This change moves the cached window and application input state into the handle objects themselves. It simplifies the dispatcher somewhat because it no longer needs to fix up references to transient InputWindow objects each time the window list is updated. This change will also make it easier to optimize setInputWindows to avoid doing a lot of redundant data copying. In principle, only the modified fields need to be updated. However, for now we continue to update all fields in unison as before. It turns out that the input dispatcher was inappropriately retaining pointers to InputWindow objects within the mWindows InputWindow vector. This vector is copy-on-write so it is possible and the item pointers to change if an editing operation is performed on the vector when it does not exclusively own the underlying SharedBuffer. This bug was uncovered by a previous change that replaced calls to clear() and appendVector() with a simple use of operator= which caused the buffer to be shared. Consequently after editItemAt was called (which it shouldn't have, actually) the buffer was copied and the cached InputWindow pointers became invalid. Oops. This change fixes the problem. Change-Id: I0a259339a6015fcf9113dc4081a6875e047fd425
nputApplication.h
nputDispatcher.cpp
nputDispatcher.h
nputWindow.cpp
nputWindow.h
ests/InputReader_test.cpp
|
023e8c72e9f5ab882f8413c6073e34531a7a794a |
13-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Revert "fix a weird use of Vector::appendVector()""
|
b99a82437cc999ecee143b82482dae36c13049f3 |
13-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Revert "fix a weird use of Vector::appendVector()" This reverts commit 198fd888add624cf9e53ce31b776568a5d069916 This change seems to have exposed some other bugs. Bug: 5026631
nputDispatcher.cpp
|
8c55a9a57e4f13ec420c3de7b3abfdcf454f6633 |
12-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Remove the simulator target from all makefiles. Bug: 5010576"
|
bd882b1c8708686d373c56e07e6bb8b1cb6ffd9e |
12-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Remove the simulator target from all makefiles. Bug: 5010576 Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
ndroid.mk
ests/Android.mk
|
198fd888add624cf9e53ce31b776568a5d069916 |
12-Jul-2011 |
Mathias Agopian <mathias@google.com> |
fix a weird use of Vector::appendVector() operator= is way more efficient. Change-Id: I61c9adb1413bed230801a77151b8f7000fd11471
nputDispatcher.cpp
|
a4d1bc517207d7ca8d56f0004cd04f0f1dd4567d |
02-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Drop obsolete touch screen hacks. Change-Id: I47354c37ee2cc2b36340eb709bb5043b3ba78ed9
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
6894a2947eb1f9d499fd7f1a1ec4e7098e07d25d |
02-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Workaround apps that make assumptions about pointer ids. Modified the touch input mapper to assign pointer ids sequentially starting from 0 instead of using the tracking id or slot index supplied by the driver. Applications should not depend on this ordering but some do. (sigh) Bug: 4980884 Change-Id: I0dfeb3ac27c57a7102a13c960c760e2a02eb7669
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
2717eff2ac04bed60e5fd577bcb8ec1ea7c2ccde |
01-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Query input device for initial slot index. This fixes a problem where touches can get stuck because the driver and the framework have different ideas of what the initial slot index is. The framework assumed it was slot 0 but it could in principle be any slot, such as slot 1. When that happened, the framework would start tracking the first touch as slot 0, but it might never receive an "up" for that slot. Change-Id: Idaffc4534b275d66b9d4360987b28dc2d0f63218
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputReader.cpp
ests/InputReader_test.cpp
|
d6401253183213ec6d07caae4ab778d6e1db7155 |
30-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Fix joystick and trackpad regression."
|
2e45fb6f951d0e0c68d4211fe68108d2230814bc |
30-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix joystick and trackpad regression. Change-Id: I33b6756f95a6b0725ffa210f341da3c98426491b
nputDispatcher.cpp
nputReader.cpp
|
439863f3b3e725b5de1cba4940a21900369961c0 |
29-Jun-2011 |
Mathias Agopian <mathias@google.com> |
SF transactions are now O(1) wrt IPC instead of O(N). Change-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43
priteController.cpp
|
aba321aa6f1be57beac70bd540812eea1c8262c5 |
29-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Add some logging code to track down touch issues. Change-Id: I9bd7af6b93f82a83c6863986d21e7a222d97e4ae
nputReader.cpp
|
8134681b25dfff814ffeaad8ff70e84316c1869f |
29-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Improve input event consistency invariants. Fixed some issues where inconsistent streams of events could be generated by the dispatcher, particularly when switching from hovering with one device to hovering with another. Fixed a bug where the touch pad would fail to generate a new HOVER_MOVE following a tap event. As a result, the hover event stream would not resume until the user touched the touch pad again. Change-Id: I444dce84641fb12e56a0af84c931520771d6c493
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
|
53ca3f13e70fda98aa9f39bb0c15afaf435e3904 |
28-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Hover and stylus API cleanup. Added missing setOnHoverListener method. Removed BUTTON_STATE_ERASER. Change-Id: I5d820d0a8e47fe5fd2d88e9fd9fc3fc6ce0dea0d
nputReader.cpp
|
474dcb5c3ddff737c4ac9fc44a1f7be569605e5f |
15-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Add support for disabling pointer gestures. Made it possible for individual windows to disable pointer gestures while the window has focus using a private API. Cleaned up the InputReader configuration code to enable in-place reconfiguration of input devices without having to reopen them all. This change makes changing the pointer speed somewhat nicer since the pointer doesn't jump back to the origin after each change. Change-Id: I9727419c2f4cb39e16acb4b15fd7fd84526b1239
nputDispatcher.cpp
nputReader.cpp
nputReader.h
nputWindow.h
ests/InputReader_test.cpp
|
93fa9b30b91f75ee161d0791ff17f98d1a603812 |
15-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
EventHub code cleanup. Use epoll_wait() instead of poll(). Dropped all support for non-Linux platforms. Added a wake-up protocol so that the InputReader can wake up the event loop immediately as needed. Change-Id: Ibf84337bcceb3c2df068c5c637de42a319786d66
ventHub.cpp
ventHub.h
nputReader.cpp
ests/InputReader_test.cpp
|
98db5fabdad86dca379740d8050697950b9f026c |
09-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Allow touches to slide out of the navigation bar. Change-Id: I73cabba3d62f47829bf6217700ace56a27c42b1d
nputDispatcher.cpp
nputDispatcher.h
nputWindow.h
|
b3a2d1330716812784aee91b6d6275764b5e4210 |
13-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Take advantage of updated linux/input.h kernel headers. Change-Id: I72d2ef82de5c504d46b0cdb57aa43bbd0d769174
ventHub.cpp
ventHub.h
nputReader.cpp
ests/InputReader_test.cpp
|
7a9db181a64e0e752a447c6408639bbb33c412fc |
03-Jun-2011 |
Kenny Root <kroot@google.com> |
No position information for outside touches When a window registers to listen for outside touches, it doesn't need the position information for touches that land outside of its activity for normal use cases. This patch uses the foreground window's UID as a filter to determine whether to pass the position information. This will allow applications to continue to rely on touch information for inputs that were directed at one of its other windows. Bug: 4541250 Change-Id: If16eb1ec8404b797d991859eef55ac0a20a355a3
nputDispatcher.cpp
nputDispatcher.h
|
9429e6ebe427e1bde01391d53f323ec33d540a14 |
09-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
am 92110af2: am 5f0b1721: am 25bd8abc: Merge "Fix swipe gesture cosine calculation. Bug: 4124987" into honeycomb-mr2 * commit '92110af24a9a93b73264560b57f55f45ec65dab5': Fix swipe gesture cosine calculation. Bug: 4124987
|
cb0c55ed37495dfd5b04a80c9e024f91ba926109 |
08-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
am e046555b: am fd324486: am 5cb05eea: Merge "Fix build." into honeycomb-mr2 * commit 'e046555b4d92179327d12d888be967fff5c027ca': Fix build.
|
051e8f2bfa3ada8ee64d8a4f4d69ad9286209516 |
08-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
am 55cc25c1: am 797dc698: am b92dcf9c: Merge "Simplify spot tracking logic. Bug: 4124987" into honeycomb-mr2 * commit '55cc25c12c45e8ffb65d2275cc0b6941b68db9df': Simplify spot tracking logic. Bug: 4124987
|
774ed9d9537c15482e8baca2f2890c5d2f4ffe75 |
08-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
resolved conflicts for merge of 8b2c0014 to master Change-Id: I33a5a2949dc6c2d09e8196ba8c7128caa7ac2361
|
6674d9bf0a53387df0cf8482458cf5f9ab274ec0 |
08-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
Fix swipe gesture cosine calculation. Bug: 4124987 Recent changes introduced a multiplication factor into the distance calculation which ended up being absent from the dot product calculation. Change-Id: Ia367912b9ac09b6285d5a498a0c271563c9e9e39
nputReader.cpp
nputReader.h
|
9181a5f40cf5ac7d413d5bc3bd6c15cc6d13705f |
07-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
Fix build. Change-Id: I9ea07637058e2aa74d20d881bc21fea305cc869e
ests/InputReader_test.cpp
|
cb5ffcf0e41d2597401208221c61589547a00f3d |
07-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
Simplify spot tracking logic. Bug: 4124987 Since spots are now one-to-one with the touch gesture points, we can eliminate a lot of redundant logic that assumed they weren't. Change-Id: Ic60d8d0898c285317f480bc8fb17fb9797770e69
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
|
bb3fcba0caf697f1d238a2cbefdf1efe06eded99 |
07-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
Touch pad improvements. Bug: 4124987 Only show one spot per touch point instead of one spot per finger for multitouch gestures. Tweaked the pointer acceleration curves. Dissociated the hover/tap timeouts from the "tap" timeout since they mean very different things. Change-Id: I7c2cbd30feeb65ebc12f6c7e33a67dc9a9f59d4c
nputReader.cpp
nputReader.h
|
b12682270aebc110c9518bddae7a8aecc070cad7 |
04-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Use pointer mode instead of spots for SEMI_MT touch pads. The spot-based presentation relies on being able to accurately locate and distinguish two or more fingers on the touch pad. We can still do gesture recognition without distinct multitouch but it doesn't make sense to show spots because we can't be sure that the spots will appear in the right places. Change-Id: Ia282d77000bf3b50d395273a1f0ac0bbe55b3c6f
nputReader.cpp
|
7218d830e27d81141588cd6e37f206d141a18f62 |
04-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
resolved conflicts for merge of ca2b552d to master Change-Id: I2f3693a59042ac5aa2d7bcdc3a504c78dc99a18b
|
a742f854901b8306d3696c9e9b7881c207130a01 |
04-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
am 56503b8d: am 8186a5f0: am 10c3f367: Merge "Implement pointer acceleration." into honeycomb-mr2 * commit '56503b8ddfe5c82407da32e18061e725f668432d': Implement pointer acceleration.
|
f3b57def9345d6d3cac3604d6a970f6d48f345ec |
03-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
resolved conflicts for merge of 7e193916 to master Change-Id: If06892419319c3a2d4ab6b03dd3ceb99b83803b5
|
60a126a4c8f3bd1a36feb567ddd02a01ab298d54 |
03-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Fix ABS_MT_SLOT handling."
|
441a9c28f5831974905a3aee238d741461138ed5 |
03-Jun-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix ABS_MT_SLOT handling. Shouldn't reset the current slot index to 0 after each SYN_REPORT. Change-Id: I370e4770f8ae0ce598369ecbaf64772c13e02d46
nputReader.cpp
nputReader.h
|
1a84fd1fb7a51f3fe4f8865e1cdd09f3490f696c |
02-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
Add a preference panel for mouse speed. Bug: 4124987 Change-Id: I3ce175d268a1d043cf5878481261b1049a15a149
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
19c97d46fb57f87ff45d9e6ea7122b4eb21ede8c |
01-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
Implement pointer acceleration. Bug: 4124987 Change-Id: I1f31a28f1594c55302ccabe13fe3ca6d2ff71d50
nputReader.cpp
nputReader.h
|
b530abcff5ae8e5ebb75ec6aa42b7c7c190e98a5 |
01-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
am 3f5b95b0: am a4e74744: am fa574c0e: Merge "Touch pad UX improvements." into honeycomb-mr2 * commit '3f5b95b05efcf7ab2e8f193649b841dc1786f2ef': Touch pad UX improvements.
|
214eaf48878bba00cbd5831871bcbd82632b6e34 |
27-May-2011 |
Jeff Brown <jeffbrown@android.com> |
Use ViewConfiguration to seed input system configuration. Fix bug where the pointer presentation would be updated on any input reader timeout rather than only when a pointer gesture is in progress. Bug: 4124987 Change-Id: Ie9bba4a0b3228d55e45e65fa2ede5cd6ba887a08
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
nputReader.h
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|
4e3f7206eb0af14d3da4c03bdf9918161774e726 |
01-Jun-2011 |
Jeff Brown <jeffbrown@android.com> |
Button state should reflect actual buttons. (DO NOT MERGE) Bug: 4124987 Change-Id: If0585bd1432c8c61ed0c9a6a4f6de4a62e3f6e53
nputReader.cpp
|
538881e18323a0c983bd8809f8c3b1cdeeeab8a6 |
26-May-2011 |
Jeff Brown <jeffbrown@android.com> |
Touch pad UX improvements. Fade the pointer spot when swiping or performing a freeform gesture. Support configuring the gesture mode in the device IDC file. Added workaround for devices that report individual finger movements one at a time instead of all at once. Bug: 4124987 Change-Id: I44628b00382ad59306e4ec5c4717d69cc6fbebb8
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
ests/InputReader_test.cpp
|
2cb7981e70dd1d4e4368dbef8797d336e0797b61 |
26-May-2011 |
Jeff Brown <jeffbrown@android.com> |
Fix deadlock in dispatcher. (DO NOT MERGE) This regression was caused due to a bad cherry-pick / merge. Change-Id: I79e84285bbfd4cd4b66681461543fb185b60d3ba
nputDispatcher.cpp
|
b416e241db85b678cdfcdee1c74a7f356a5554ef |
25-May-2011 |
Jeff Brown <jeffbrown@android.com> |
Fix bug reporting presence of orientation axis. (DO NOT MERGE) Change-Id: I20aecca392d2843601e6e0ec4ac913c8ccdbbf89
nputReader.cpp
|
325bd07b311f8ba68079000e9fe8afbcc076d7b6 |
20-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Add tap/drag touchpad gesture. (DO NOT MERGE) The mapper sends a DOWN when the finger is released then starts a short timer. If the finger is not pressed again before the timer elapses, then the mapper sends an UP to complete the tap. If the finger is pressed again then the mapper starts sending MOVEs as part of a drag. Double/triple taps work as intended because we also start watching for a new tap when the finger is pressed again. If a new tap occurs the old tap is also finished. So each individual finger short press/release cycle constitutes a distinct tap. Change-Id: Id0a6ee10dd27e723f6cb04e56b43939abe9e940c
nputReader.cpp
nputReader.h
ointerController.h
|
86ea1f5f521981d075aef56f11693e4f3bc32fdb |
13-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE) Added a new PointerIcon API (hidden for now) for loading pointer icons. Fixed a starvation problem in the native Looper's sendMessage implementation which caused new messages to be posted ahead of old messages sent with sendMessageDelayed. Redesigned the touch pad gestures to be defined in terms of more fluid finger / spot movements. The objective is to reinforce the natural mapping between fingers and spots which means there must not be any discontinuities in spot motion relative to the fingers. Removed the SpotController stub and folded its responsibilities into PointerController. Change-Id: Ib647dbd7a57a7f30dd9c6e2c260df51d7bbdd18e
ndroid.mk
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
potController.cpp
potController.h
priteController.cpp
priteController.h
ests/InputReader_test.cpp
|
a6dbfdd3a858aac52cc87f80f91e8eef7d613605 |
11-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Add a sprite controller. (DO NOT MERGE) Refactored PointerController to extract the surface management code to a new component called a SpriteController so that it can be used to move finger tracking spots around the screen as well. The SpriteController is designed to fully decouple the client from any latency introduced by surface transactions and drawing. All sprite updates are performed asynchronously on the Looper using a copy of the sprite state. Added a stub SpotController implementation for touch pad UX. It will be implemented in a subsequent patch. Fixed a little bug in pointer orientation changes when entering DISPLAY_ORIENTATION_90 the x offset was clobbered. Change-Id: I6d59d80df9af61e93af50290e7776337d10c9d5a
ndroid.mk
nputReader.h
ointerController.cpp
ointerController.h
potController.cpp
potController.h
priteController.cpp
priteController.h
ests/InputReader_test.cpp
|
5ced76a14350db56f1a80f00076f8be3d982c389 |
24-May-2011 |
Jeff Brown <jeffbrown@android.com> |
Coalesce input events that arrive faster than 333Hz. (DO NOT MERGE) Some drivers report individual finger updates one at a time instead of all at once. When 10 fingers are down, this can cause the framework to have to handle 10 times as many events each with 10 times as much data. Applications like PointerLocation would get significantly bogged down by all of the redundant samples. This change coalesces samples that are closely spaced in time, before they are dispatched, as part of the motion event batching protocol. Increased the size of the InputChannel shared memory buffer so that applications can catch up faster if they accumulate a backlog of samples. Change-Id: Ibc6abf8af027d9003011ac75caa12941080caba3
ventHub.cpp
nputDispatcher.cpp
nputDispatcher.h
|
7157f6fe13ab7e2fef44cc33c95d1c531418220f |
07-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Allow batching samples onto the pending motion event. (DO NOT MERGE) This enlarges the window of opportunity for batching to encompass time spent for the window to become ready (while it is busy processing the last event). Change-Id: I8870cc3081d27a4de659fb4e375f888fe966460b
nputDispatcher.cpp
|
524ee64b91bc123e1ccfc881a0f1a1e84722251d |
30-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Support chorded fallback keys. (DO NOT MERGE) Also be more careful about canceling fallback keys during focus transitions, when the application handles the key, or when the policy decides to do something different. Fixed a crash due to JNI CallObjectMethod returning an undefined value (not null) when an exception is thrown. Fixed a crash due to the policy trying to create a Dialog for recent apps on the dispatcher thread. It should happen on the policy's Looper instead. Bug: 4187302 Change-Id: I043f82913830f411b3bb4018d6422467b6ca454f
nputDispatcher.cpp
nputDispatcher.h
|
22d789d580a4ab5bed83c0ed698d2f5bc721e176 |
25-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix focused application handle. (DO NOT MERGE) Fix a bug where we were always setting the focused application handle to NULL. This broke ANR processing while starting applications and caused input events to be dropped while starting applications. Bug: 4174573 Change-Id: Ice7ce3a2b65219568a8227fc1383bafb294666b5
nputDispatcher.cpp
|
dbf8d27f4c32e20e132e90ad713c6ebaf71d7756 |
19-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Optimize EventHub to process events in big chunks. (DO NOT MERGE) When 10 fingers are down, reduces the CPU time spent by the InputReader thread from ~30% to ~5% on Stingray. Change-Id: I42ee5c67b8521af715cbab43e763a4af4eb1f914
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
9f2106f2bcbb82cd2d8a80f24ab0cdafeb6b5d8f |
24-May-2011 |
Jeff Brown <jeffbrown@google.com> |
Disable pointer debug logging. Change-Id: I00628fa369cb1b179a1907f9cb19de8ca4c755ab
nputReader.cpp
|
80fd47ce75253dcdc2cfa85d7a3f42634b923a47 |
24-May-2011 |
Jeff Brown <jeffbrown@google.com> |
Input device protocol enhancements. Added support for Linux multitouch protocol B (slots). Added support for using the device's input properties as a hint to determine the intended usage of a touch device. Added support for the ABS_MT_DISTANCE axis. Fixed a bug reporting the presence of the orientation axis. Change-Id: Icf7b5a5a0f1a9cdf6ad2b35be8ea0c1a35815d48
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
68d6075b4ad2205c10064c78cde552e3210cca91 |
17-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Refactor how timeouts are calculated. (DO NOT MERGE) Added a timeout mechanism to EventHub and InputReader so that InputMappers can request timeouts to perform delayed processing of input when needed. Change-Id: I89c1171c9326c6e413042e3ee13aa9f7f1fc0454
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
96ad3979f328a1aa098917ca1c35575e85345526 |
10-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Use touch pad gestures to manipulate the pointer. (DO NOT MERGE) 1. Single finger tap performs a click. 2. Single finger movement moves the pointer (hovers). 3. Button press plus movement performs click or drag. While dragging, the pointer follows the finger that is moving fastest. This is important if there are additional fingers down on the touch pad for the purpose of applying force to an integrated button underneath. 4. Two fingers near each other moving in the same direction are coalesced as a swipe gesture under the pointer. 5. Two or more fingers moving in arbitrary directions are transformed into touches in the vicinity of the pointer. This makes scale/zoom and rotate gestures possible. Added a native VelocityTracker implementation to enable intelligent switching of the active pointer during drags. Change-Id: I7b7ddacc724fb1306e1590dbaebb740d3130d7cd
nputDispatcher.cpp
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
ae7bc6529a40cdc25c65c28b76266e0c873861c4 |
14-May-2011 |
Jeff Brown <jeffbrown@android.com> |
am 0d9288d7: am 2bdb756c: am 4fb76253: Fix bounds check. Bug: 4413945 * commit '0d9288d7848e144fdf7afbd7284254dae3d13d43': Fix bounds check. Bug: 4413945
|
4fb76253f255f0adb8a64835af37bb9176ee4016 |
13-May-2011 |
Jeff Brown <jeffbrown@android.com> |
Fix bounds check. Bug: 4413945 Also remove dead code from header file. Change-Id: I4e9fc9d7f8612fedb436e62649d308bd737ed138
nputWindow.cpp
nputWindow.h
|
fe9f8ab03a63b1037f07dd85799fbea80ec6adaa |
07-May-2011 |
Jeff Brown <jeffbrown@google.com> |
Add initial API for stylus and mouse buttons. Added the concept of pointer properties in a MotionEvent. This is currently used to track the pointer tool type to enable applications to distinguish finger touches from a stylus. Button states are also reported to application as part of touch events. There are no new actions for detecting changes in button states. The application should instead query the button state from the MotionEvent and take appropriate action as needed. A good time to check the button state is on ACTION_DOWN. As a side-effect, applications that do not support multiple buttons will treat primary, secondary and tertiary buttons identically for all touch events. The back button on the mouse is mapped to KEYCODE_BACK and the forward button is mapped to KEYCODE_FORWARD. Added basic plumbing for the secondary mouse button to invoke the context menu, particularly in lists. Added clamp and split methods on MotionEvent to take care of common filtering operations so we don't have them scattered in multiple places across the framework. Bug: 4260011 Change-Id: Ie992b4d4e00c8f2e76b961da0a902145b27f6d83
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|
2ba3e80f942d35695310f8dde8c16d9687447e47 |
11-May-2011 |
Dianne Hackborn <hackbod@google.com> |
resolved conflicts for merge of 037b54cf to master Change-Id: I1bc2827596a349963d8aa2b63b3f7801f155668a
|
e7d25b74b0f5c8ad32225c7a3e98a0d1717eb7c7 |
10-May-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix scaling of batched motion events. Change-Id: I1e070c936f7b2e8f1bb7ebae62b1df0aa6998b82
nputDispatcher.cpp
|
aa9d84c37e05f696ec158dac98ce38cf41e18314 |
10-May-2011 |
Dianne Hackborn <hackbod@google.com> |
resolved conflicts for merge of 05be6d6f to master Change-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212
|
e2515eebf42c763c0a2d9f873a153711778cfc17 |
28-Apr-2011 |
Dianne Hackborn <hackbod@google.com> |
Better compat mode part one: start scaling windows. First step of improving app screen size compatibility mode. When running in compat mode, an application's windows are scaled up on the screen rather than being small with 1:1 pixels. Currently we scale the application to fill the entire screen, so don't use an even pixel scaling. Though this may have some negative impact on the appearance (it looks okay to me), it has a big benefit of allowing us to now treat these apps as normal full-screens apps and do the normal transition animations as you move in and out and around in them. This introduces fun stuff in the input system to take care of modifying pointer coordinates to account for the app window surface scaling. The input dispatcher is told about the scale that is being applied to each window and, when there is one, adjusts pointer events appropriately as they are being sent to the transport. Also modified is CompatibilityInfo, which has been greatly simplified to not be so insane and incomprehendible. It is now simple -- when constructed it determines if the given app is compatible with the current screen size and density, and that is that. There are new APIs on ActivityManagerService to put applications that we would traditionally consider compatible with larger screens in compatibility mode. This is the start of a facility to have a UI affordance for a user to switch apps in and out of compatibility. To test switching of modes, there is a new variation of the "am" command to do this: am screen-compat [on|off] [package] This mode switching has the fundamentals of restarting activities when it is changed, though the state still needs to be persisted and the overall mode switch cleaned up. For the few small apps I have tested, things mostly seem to be working well. I know of one problem with the text selection handles being drawn at the wrong position because at some point the window offset is being scaled incorrectly. There are probably other similar issues around the interaction between two windows because the different window coordinate spaces are done in a hacky way instead of being formally integrated into the window manager layout process. Change-Id: Ie038e3746b448135117bd860859d74e360938557
nputDispatcher.cpp
nputDispatcher.h
nputWindow.cpp
nputWindow.h
|
8956dbbc5f292d8b79072ae73b25f2114c8c7479 |
22-Apr-2011 |
Daniel Sandler <dsandler@android.com> |
On-screen navigation bar (separate from the status bar). In Honeycomb we introduced navigation controls in the status bar, for xlarge devices without physical buttons. What about phones? The status bar is pretty cramped already, and besides, it's at the top of the display most of the time, not at the bottom where your thumb is likely to be. Enter the navigation bar. It's a new window type that appears atop almost everything (including the keyguard); the window manager subtracts its rectangle from the default visible rectangle of other windows (including the status bar and notification shade). However, it behaves (on phones) like the status bar in that applications that request fullscreen windows can get access to those pixels. Well, almost; they need cooperation from the navigation bar implementation to make the navbar disappear, just like the status bar. The current SystemUI implementation of the navigation bar on phones is still rough, but it has the basics: + back, home, and menu keys (NB: we're showing menu all the time right now because checking the api level of the package owning the top window is currently a poor indicator of whether the app requires the menu key) + it tries to stick to the same physical end of the device, regardless of device orientation (on a phone, this is the strip of land closest to the microphone) Change-Id: Ic613a3351220af0bbfbdef63e1d99cbefd5ed1c2
nputWindow.h
|
6d8a98afb0bda0d8a38b8839af94918c76a8fd2c |
27-Apr-2011 |
Daniel Sandler <dsandler@google.com> |
Make InputWindow.h's window types align with WindowManager.java's. Change-Id: Ia4919e02882ebc682c80bfaae1fa775606f17098
nputWindow.h
|
5db1314192b462f3666455fdae42a96ec2918ce9 |
22-Apr-2011 |
Mathias Agopian <mathias@google.com> |
Merge "Get rid of the "pid" parameter from createSurface"
|
9638e5c167be321643bf3f3ee39e3fb45541fb3b |
20-Apr-2011 |
Mathias Agopian <mathias@google.com> |
Get rid of the "pid" parameter from createSurface Change-Id: I28635e3f803e6abe965d79998e305f54a202465d
priteController.cpp
|
79ac969d7a84b7198f9ed814cc0b2f0b7e11a662 |
20-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Add tap/drag touchpad gesture. The mapper sends a DOWN when the finger is released then starts a short timer. If the finger is not pressed again before the timer elapses, then the mapper sends an UP to complete the tap. If the finger is pressed again then the mapper starts sending MOVEs as part of a drag. Double/triple taps work as intended because we also start watching for a new tap when the finger is pressed again. If a new tap occurs the old tap is also finished. So each individual finger short press/release cycle constitutes a distinct tap. Change-Id: Iaa51182edee4378162a66adfd746088e93af2a30
nputReader.cpp
nputReader.h
ointerController.h
|
2352b978a3c94cd88f41d0d908f961333fdac1e9 |
13-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Initial checkin of spot presentation for touchpad gestures. Added a new PointerIcon API (hidden for now) for loading pointer icons. Fixed a starvation problem in the native Looper's sendMessage implementation which caused new messages to be posted ahead of old messages sent with sendMessageDelayed. Redesigned the touch pad gestures to be defined in terms of more fluid finger / spot movements. The objective is to reinforce the natural mapping between fingers and spots which means there must not be any discontinuities in spot motion relative to the fingers. Removed the SpotController stub and folded its responsibilities into PointerController. Change-Id: I5126b1e69d95252fda7f2a684c9287e239a57163
ndroid.mk
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
potController.cpp
potController.h
priteController.cpp
priteController.h
ests/InputReader_test.cpp
|
5541de9ea3513a12d1ac2ad07e7e04a3aa7741a0 |
11-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Add a sprite controller. Refactored PointerController to extract the surface management code to a new component called a SpriteController so that it can be used to move finger tracking spots around the screen as well. The SpriteController is designed to fully decouple the client from any latency introduced by surface transactions and drawing. All sprite updates are performed asynchronously on the Looper using a copy of the sprite state. Added a stub SpotController implementation for touch pad UX. It will be implemented in a subsequent patch. Fixed a little bug in pointer orientation changes when entering DISPLAY_ORIENTATION_90 the x offset was clobbered. Change-Id: Ib25d162d577c9b354cb74d5d761c3c9f9f438d42
ndroid.mk
nputReader.h
ointerController.cpp
ointerController.h
potController.cpp
potController.h
priteController.cpp
priteController.h
ests/InputReader_test.cpp
|
4e91a180be46c0c7c3bf398d4df4cbe2404216b5 |
07-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Coalesce input events that arrive faster than 333Hz. Some drivers report individual finger updates one at a time instead of all at once. When 10 fingers are down, this can cause the framework to have to handle 10 times as many events each with 10 times as much data. Applications like PointerLocation would get significantly bogged down by all of the redundant samples. This change coalesces samples that are closely spaced in time, before they are dispatched, as part of the motion event batching protocol. Increased the size of the InputChannel shared memory buffer so that applications can catch up faster if they accumulate a backlog of samples. Added logging code to help measure input dispatch and drawing latency issues in the view hierarchy. See ViewDebug.DEBUG_LATENCY. Change-Id: Ia5898f781f19901d2225c529a910c32bdf4f504f
ventHub.cpp
nputDispatcher.cpp
nputDispatcher.h
|
f6989da7c7727ad433b75ad2c8d8d23c2651f70b |
07-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Allow batching samples onto the pending motion event. This enlarges the window of opportunity for batching to encompass time spent for the window to become ready (while it is busy processing the last event). Change-Id: I3fb5a394ab1b85d6591192678168ca6e35dd9d53
nputDispatcher.cpp
|
b6110c2de0cd7950360aeb2c248a44e4ea5f33f5 |
02-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix dispatcher crash when input monitoring enabled. Also ensure that we actually log assertion failures. Bug: 4203092 Change-Id: I5c14bc41b2255f876858121f5572e2de75cabcc3
ventHub.cpp
nputDispatcher.cpp
nputReader.cpp
|
0029c66203ab9ded4342976bf7a17bb63af8c44a |
30-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Add input filter mechanism for accessibility. This patch adds a mechanism for capturing, filtering, transforming and injecting input events at a very low level before the input dispatcher attempts to deliver them to applications. At this time, the mechanism is only intended to be used by the accessibility system to implement built-in system-level accessibility affordances. The accessibility input filter is currently just a stub. It logs the input events receives and reinjects them unchanged, except that it transforms KEYCODE_Q into KEYCODE_Z. Currently, the accessibility input filter is installed whenever accessibility is enabled. We'll probably want to change that so it only enables the input filter when a screen reader is installed and we want touch exploration. Change-Id: I35764fdf75522b69d09ebd78c9766eb7593c1afe
nputDispatcher.cpp
nputDispatcher.h
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|
6e923274c593bb52232321fc9ebbd966657e69f8 |
30-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Support chorded fallback keys."
|
da3d5a91b6b311ed77f2707d4456c1f18b84d73b |
30-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Support chorded fallback keys. Also be more careful about canceling fallback keys during focus transitions, when the application handles the key, or when the policy decides to do something different. Fixed a crash due to JNI CallObjectMethod returning an undefined value (not null) when an exception is thrown. Fixed a crash due to the policy trying to create a Dialog for recent apps on the dispatcher thread. It should happen on the policy's Looper instead. Bug: 4187302 Change-Id: I659a3fd1bd2325ed36d965f9beb75dacb89790c9
nputDispatcher.cpp
nputDispatcher.h
|
696257ccf315a1da042787c5b2d1f80c7146fc94 |
26-Mar-2011 |
Mathias Agopian <mathias@google.com> |
merge libsurfaceflinger_client into libgui this is the first step in unifying surfacetexture and surface. for this reason the header files were not moved, as most of them will eventually go away. NOTE: currently we keep libsurfaceflinger_client.so as an empty library to workaround prebuilt binaries wrongly linking against it. Change-Id: I130f0de2428e8579033dc41394d093f4e1431a00
ndroid.mk
ests/Android.mk
|
a2cc28d732577dd48a02de637c635e9764400248 |
25-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix focused application handle. Fix a bug where we were always setting the focused application handle to NULL. This broke ANR processing while starting applications and caused input events to be dropped while starting applications. Bug: 4174573 Change-Id: Icd7b8c4c49ed73c41978f3ff076c2e5cd839a802
nputDispatcher.cpp
|
a032cc008618b83ecbbede537517d1e7998e3264 |
08-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Add MotionEvent.HOVER_ENTER and HOVER_EXIT. The input dispatcher sends a HOVER_ENTER to a window before dispatching it any HOVER_MOVE events. For compatibility reasons, the window will *also* receive the HOVER_MOVE. When the pointer moves into a different window or the pointer goes down or when events are canceled for some reason, the input dispatcher sends a HOVER_EXIT to the previously hovered window. The view hierarchy behavior is similar. All views under the pointer receive onHoverEvent with HOVER_ENTER followed by any number of HOVER_MOVE events. When the pointer leaves a view, the view receives HOVER_EXIT. Similarly, if a parent view decides to capture hover by returning true from onHoverEvent, the hovered descendants will receive HOVER_EXIT. The default behavior of onHoverEvent is to update the view's hovered state by calling setHovered(true/false). Views can query their current hovered state using isHovered(). For testing purposes, the hovered state is mapped to the pressed drawable state. This will change in a subsequent commit with the introduction of a new hovered drawable state. Change-Id: Ib76a7a90236c8f2c7336e55773acade6346cacbe
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
|
df66797771550d243500943e1b9a177667f77f7a |
19-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Optimize EventHub to process events in big chunks."
|
b7198743ab3976b30d4655c1e065ca33e372b6af |
19-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Optimize EventHub to process events in big chunks. When 10 fingers are down, reduces the CPU time spent by the InputReader thread from ~30% to ~5% on Stingray. Change-Id: Icdf7c91cd5d9039ac3beb38ba9021a05e7fabc80
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
6ed6f6d82d7b9f8d82f3ab3a9f718a0e59ffa476 |
18-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Refactor how timeouts are calculated."
|
2120617f2fb10035022d1a3e76836a278a0e6a18 |
18-Mar-2011 |
James Dong <jdong@google.com> |
am 14438b81: am 970bad67: am be368de7: Merge "Fix missing AOSP copyright headers for more files" into honeycomb-mr1 * commit '14438b81a1fe4d7ebdf8977f3d80a1dd1867c5ad': Fix missing AOSP copyright headers for more files
|
aa3855d5836d2a2d83baafdf6e40caf90d3dad1c |
17-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Refactor how timeouts are calculated. Added a timeout mechanism to EventHub and InputReader so that InputMappers can request timeouts to perform delayed processing of input when needed. Change-Id: Iec2045baaf4e67690b15eef3c09a58d5cac76897
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
199d1c131d29b5356f71fbd7826a592c1dd8575f |
17-Mar-2011 |
James Dong <jdong@google.com> |
Fix missing AOSP copyright headers for more files o Update the copyright date on InputDispatcher_test.cpp and InputReader_test.cpp because these two files were moved from other places to the current location, and were actually created in 2010. bug - 4119349 Change-Id: Ic93b81ddafb58e9e72a2e9e02ca3d9f173d6dca7
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|
8cb373ad858cdb19060cfa2fee43afca9c791ab4 |
17-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
am e5feed7e: am 244eb34a: am d98f8aff: Merge "Fix dangling pointer when device closed just after opening." into honeycomb-mr1 * commit 'e5feed7e5ded92b8af4b5548144b6b8a45491a61': Fix dangling pointer when device closed just after opening.
|
8e9d4431d6a97a08d7dc9612c68ffd0812dfdc68 |
13-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix dangling pointer when device closed just after opening. Bug: 4088239 Change-Id: I210b918370357560a5ace8ea8dd7601255487e88
ventHub.cpp
|
ace13b17866dc9136aeecf6dfaf7077f37434469 |
10-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Use touch pad gestures to manipulate the pointer. 1. Single finger tap performs a click. 2. Single finger movement moves the pointer (hovers). 3. Button press plus movement performs click or drag. While dragging, the pointer follows the finger that is moving fastest. This is important if there are additional fingers down on the touch pad for the purpose of applying force to an integrated button underneath. 4. Two fingers near each other moving in the same direction are coalesced as a swipe gesture under the pointer. 5. Two or more fingers moving in arbitrary directions are transformed into touches in the vicinity of the pointer. This makes scale/zoom and rotate gestures possible. Added a native VelocityTracker implementation to enable intelligent switching of the active pointer during drags. Change-Id: I5ada57e7f2bdb9b0a791843eb354a8c706b365dc
nputDispatcher.cpp
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
efd3266b719eed5f1b217021c0a9e76e4b274b06 |
09-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Input improvements and bug fixes. Associate each motion axis with the source from which it comes. It is possible for multiple sources of the same device to define the same axis. This fixes new API that was introduced in MR1. (Bug: 4066146) Fixed a bug that might cause a segfault when using a trackball. Only fade out the mouse pointer when touching the touch screen, ignore other touch pads. Changed the plural "sources" to "source" in several places in the InputReader where we intend to refer to a particular source rather than to a combination of sources. Improved the batching code to support batching events from different sources of the same device in parallel. (Bug: 3391564) Change-Id: I0189e18e464338f126f7bf94370b928e1b1695f2
nputDispatcher.cpp
nputReader.cpp
nputReader.h
ointerController.h
ests/InputReader_test.cpp
|
9e8e40cb5f8aeb0702002eee60d1ce394bf699ee |
03-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Recognize 3D joysticks. (DO NOT MERGE) Change-Id: Idf7799ea90fa07677850d40ee1aec39220ded372
ventHub.cpp
nputReader.cpp
|
9626b14a283ef82d16636cf5fb5ba8bb4d30381e |
03-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix off by one errors in touch motion ranges. (DO NOT MERGE) Report inclusive minimum and maximum ranges for all axes including X and Y. Set mouse pointer bounds to 0..width-1, 0..height-1. Rotate touch and mouse positions more carefully, paying attention to the maximum bounds when calculating the complement of an axis. Simplified the InputReader somewhat and removed support for a couple of poorly defined input device configuration parameters. We now assume that the touch device provides useful absolute axis ranges for the X and Y axes since the alternative does not actually make sense. Bug: 3413541 Change-Id: I121d28a125c4f9618cb283dc460d33ff1a907023
ventHub.h
nputReader.cpp
nputReader.h
ointerController.cpp
ests/InputReader_test.cpp
|
924c4d47774fa7d8a5ce659d12291ef7df82ee05 |
08-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Support POLICY_FLAG_ALT et. al. (DO NOT MERGE) Change-Id: Ida3b8300764623662052f80095973186cb9d4616
nputDispatcher.cpp
nputReader.cpp
|
8529745b27877d98a0c76692295a3fcac238b1e6 |
04-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Joystick tweaks. (DO NOT MERGE) Ensure that the joystick can always reach -1.0, 0.0 and 1.0 positions even when noise filtering is applied. (Bug: 3514510) Add support for a few more standard axes. Add additional mapping modes for axes. Some axes are inverted from standard interpretation or are actually intended to be split into two distict axes such as left/right trigger controls or accelerator/brake. Add key layout file for a G25 racing wheel and XBox 360 controller to tweak behavior. They work fine without them but the axis mappings are not ideal. Change-Id: I0fddd90309af4dc14d35f34fe99ed6e521c0b7c7
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
f634ded277f246bd9568e9b7dcad40790767c6ab |
02-Mar-2011 |
makarand.karvekar <makarand.karvekar@motorola.com> |
Set last event time to previous event batch delivery time to apps Determination of the last event time. Currently, uses the time that the first event in the previous batch that was sent from hardware. This produces inconsistent timing intervals for event delivery to apps. Now, use the time that the previous batch was delivered to the application. Original Author: Stephen Moore <steve.moore@motorola.com> Signed-off-by: makarand.karvekar <makarand.karvekar@motorola.com> Change-Id: I2a3701915702d622dc04fbf4bbd4918a9ebe8856
nputDispatcher.cpp
|
e2e012683d6f35f5eedfd0c39167ea78e32e2650 |
03-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Only set KeyEvent long press flag when repeat count equals 1. This fixes a Gingerbread regression. Bug: 3507021 Change-Id: I8c2acb35be718fea7e996175c1407e84315d17ef
nputDispatcher.cpp
|
56194ebec6212e229f4ccdaa4b187166d20013ef |
03-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Wake screen from external HID peripherals. Added some plumbing to enable the policy to intercept motion events when the screen is off to handle wakeup if needed. Added a basic concept of an external device to limit the scope of the wakeup policy to external devices only. The wakeup policy for internal devices should be based on explicit rules such as policy flags in key layout files. Moved isTouchEvent to native. Ensure the dispatcher sends the right event type to userActivity for non-touch pointer events like HOVER_MOVE and SCROLL. Bug: 3193114 Change-Id: I15dbd48a16810dfaf226ff7ad117d46908ca4f86
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
nputReader.h
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|
05dc66ada6b61a6bdf806ffaa62617ac5394695d |
02-Mar-2011 |
Jeff Brown <jeffbrown@google.com> |
Fade out the mouse pointer after inactivity or other events. Fades out the mouse pointer: - after 15 seconds of inactivity normally - after 3 seconds of inactivity in lights out mode - after a non-modifier key down - after a touch down Extended the native Looper to support enqueuing time delayed messages. This is used by the PointerController to control pointer fade timing. Change-Id: I87792fea7dbe2d9376c78cf354fe3189a484d9da
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
ests/InputReader_test.cpp
|
33bbfd2232ea9eaae9a9d87a05a95a430f09bd83 |
25-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Add support for mouse hover and scroll wheel. Dispatch ACTION_HOVER_MOVE and ACTION_SCROLL through the View hierarchy as onGenericTouchEvent. Pointer events dispatched this way are delivered to the view under the pointer. Non-pointer events continue to be delivered to the focused view. Added scroll wheel support to AbsListView, ScrollView, HorizontalScrollView and WebView. Shift+VSCROLL is translated to HSCROLL as appropriate. Added logging of new pointer events in PointerLocationView. Fixed a problem in EventHub when a USB device is removed that resulted in a long stream of ENODEV errors being logged until INotify noticed the device was gone. Note that the new events are not supported by wallpapers at this time because the wallpaper engine only delivers touch events. Make all mouse buttons behave identically. (Effectively we only support one button.) Change-Id: I9ab445ffb63c813fcb07db6693987b02475f3756
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputReader.cpp
|
bfaf3b91709ef35e0d5901b186edd7c2a9729161 |
23-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Be more precise about tracking fallback keys. Only initiate fallback key handling if the first key down was not handled and there is no other fallback key already in progress. This prevents spurious fallbacks from being generated when applications handle the initial down but not repeated downs or the up. Change-Id: I8a513896cf96b16dc502cd72291926d5532aa2ab
nputDispatcher.cpp
nputDispatcher.h
|
cc0c159e9b3dd4e0f48da0ce3e33d2c68a651413 |
19-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Add new hover move action and scroll wheel plumbing. Added support for tracking the mouse position even when the mouse button is not pressed. To avoid confusing existing applications, mouse movements are reported using the new ACTION_HOVER_MOVE action when the mouse button is not pressed. Added some more plumbing for the scroll wheel axes. The values are reported to Views but they are not yet handled by the framework. Change-Id: I1706be850d25cf34e5adf880bbed5cc3265cf4b1
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
ests/InputReader_test.cpp
|
6f2fba428ca5e77a26d991ad728e346cc47609ee |
19-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Add new axes for joysticks and mouse wheels. Added API on InputDevice to query the set of axes available. Added API on KeyEvent and MotionEvent to convert keycodes and axes to symbolic name strings for diagnostic purposes. Added API on KeyEvent to query if a given key code is a gamepad button. Added a new "axis" element to key layout files to specify the mapping between raw absolute axis values and motion axis ids. Expanded the axis bitfield to 64bits to allow for future growth. Modified the Makefile for keyboard prebuilts to run the keymap validation tool during the build. Added layouts for two game controllers. Added default actions for game pad button keys. Added more tests. Fixed a bunch of bugs. Change-Id: I73f9166c3b3c5bcf4970845b58088ad467525525
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
ebbd5d14ad3b1e762d9fcfa026e19413cc857e05 |
17-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix a regression with MotionEvent parceling. Also added some more unit tests. Change-Id: I413654294d1a998eec056884e6df5eaa50f3daf4
nputDispatcher.cpp
nputReader.cpp
ests/InputReader_test.cpp
|
91c69ab01539f7ba28708f41ec1835cc2920d0a0 |
15-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Add support for arbitrary axes in MotionEvents. This change makes it possible to extend the set of axes that are reported in MotionEvents by defining new axis constants. The MotionEvent object is now backed by its C++ counterpart to avoid having to maintain multiple representations of the same data. Change-Id: Ibe93c90d4b390d43c176cce48d558d20869ee608
nputDispatcher.cpp
nputReader.cpp
ests/InputReader_test.cpp
|
c3451d4a4479b6244bd6d1dadf289a8d44bdcca2 |
16-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Scale major axis when finger is oriented. Change-Id: I281ec25478b4ceffa6ed5a41cb44a7e81d18d8dc
nputReader.cpp
|
71c86ada9f00334b2967d24d4182dc324cd97605 |
08-Feb-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix read from uninitialized memory. Change-Id: I75ce29d5971b386ff9dd52824a8953ce69a3ec15
ests/InputReader_test.cpp
|
0a9f335e7088ade74d9e3fbc852d052de45603ca |
26-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix build. Change-Id: Id08f3ccced1281f1c6840cc67713bcedcf9a53c0
ventHub.cpp
|
ab2f09603079534b53499864a403d0ba16aad13b |
26-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
am 12b2dc90: am b1e0a870: Merge "Fix crashes caused by some input devices." into honeycomb * commit '12b2dc90883ef4f930a17907acdef3677b0598a5': Fix crashes caused by some input devices.
|
58a2da843f2f22f406df8df1f011738eb8b7fcb1 |
26-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix crashes caused by some input devices. The touch screen sometimes reports more than 10 pointers even though that's all we asked for. When this happens, we start dropping events with more than 10 pointers. This confuses applications and causes them to crash. Raised the limit to 16 pointers. Bug: 3331247 The default behavior was to identify all touch devices as touch screens. External devices that are plugged in are more likely to be touch pads not attached to a screen. Changed the default to be a touch pad and renamed some internal constants to avoid confusion. A certain mouse happens to also behave like a touch pad. That caused problems because we would see multiple concurrent traces of motion events coming from the same input device so we would batch them up. Added code to ensure that we don't batch events unless they come from the same *source* in addition to coming from the same *device*. Due to batching or misbehaving drivers, it's possible for the set of pointer ids to be different from what we expect when it comes time to split motion events across windows. As a result, we can generate motion events with 0 pointers. When we try to deliver those events, we cause an error in the InputTransport so we tear down the InputChannel and kill the application. Added code to check out assumption about pointer ids and drop the event gracefully instead. Patched up the tests to take into account the change in default behavior for identifying touch screens and touch pads. Change-Id: Ic364bd4cb4cc6335d4a1213a26d6bdadc7e33505
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputDispatcher.h
nputReader.cpp
ests/InputReader_test.cpp
|
e155bd0fcb57fa96c4a7b5cc70205d53acf41291 |
20-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
am 5f668c6e: am 8b9df978: Merge "Fix getSwitchState." into honeycomb * commit '5f668c6e6bb2515325632691a804a7c8f24ebb09': Fix getSwitchState.
|
89de57a8d252a25ef2412a11a66089a9ff6ffe29 |
20-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix getSwitchState. InputReader::getSwitchState always returns AKEY_STATE_UNKNOWN because SwitchInputMapper::getSources() returns 0 which cannot match any source mask including AINPUT_SOURCE_ANY. As a result initial lid switch detection is broken. This change adds a new source constant AINPUT_SOURCE_SWITCH that indicates that the source has switches. Change-Id: I5321ecf0ce84f1c2b4535f6c163d3f4dcf9b7a9b
nputReader.cpp
ests/InputReader_test.cpp
|
7cca7e0b28679cf09ce6b56687c3a9679a6c7296 |
19-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
am 761a6b7f: am f4368c95: Merge "Filter virtual keys after touches." into honeycomb * commit '761a6b7fdbe2bcc6db4306af9705dcb22b036068': Filter virtual keys after touches.
|
f4368c959fa9436d75feb2543cb65da0d46521e5 |
19-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Filter virtual keys after touches." into honeycomb
|
fe50892af3b365806a767298dfd8e86447682581 |
19-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Filter virtual keys after touches. 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: Ib912d4f8a4df9966a39cd537d3ec7c24afab7225
nputReader.cpp
nputReader.h
ests/InputReader_test.cpp
|
df52f4677d6af36c8cd2dc17921a714cf153de39 |
18-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
am 6a88cea1: am f2bc4ee9: Merge "Mouse pointer tweaks." into honeycomb * commit '6a88cea122077c6b472d52136ac928c9ad690a0a': Mouse pointer tweaks.
|
f5a2ff6f2e5c5ba9dc7ab16f3b7f8f05daf3c159 |
18-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Mouse pointer tweaks. Make pointer arrow brighter. Deep copy the pointer icon bitmap since it turns out that the original shared pixels can be deleted by other code. Change-Id: I77fbf61d1dace723f3c8c9808941e9e31d8db352
ointerController.cpp
|
0f6226b9f417182bbf791598000f0a153fbf191c |
18-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Add joystick support to framework."
|
cb1404e45639d20439d7700b06d57ca1a1aad1fa |
16-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Add joystick support to framework. Change-Id: I95374436708752e1a9cff3f85c5b9bc3e0987961
ventHub.cpp
ventHub.h
nputReader.cpp
nputReader.h
|
fbf097732137a32930d151f7ba6816a5b870c32a |
16-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Support non-rectangular input regions. This enables the system bar to carve out a region through which events will be sent to the IME behind it. Bug: 3238092 Change-Id: I69b855a8d9b5b3ee525266c0861826e53e5b5028
nputDispatcher.cpp
nputWindow.cpp
nputWindow.h
|
517bb4c859a2bb8d30316204f39bf5b6c89c3e4d |
15-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Add support for detecting finger orientation. Change-Id: I901fc61f7705fcd7950190dc8782bad616032ee2
nputReader.cpp
nputReader.h
|
1c9d06e0470c41e2720c65be076b6080bf8595c0 |
15-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix bug with mice that send multiple BTN_MOUSE values. Some mice send different values for BTN_MOUSE key events when the button is held down (2 for repeat, instead of 1 for down). Change-Id: I803db1f1584f50f8f5e1d37b6a715e2e1b3943a6
nputReader.cpp
|
928e054931d357326613c78e62f4d850b7c442ff |
10-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Prevent events from getting backlogged. This change implements two heuristics. 1. When events are older than 10 seconds, they are dropped. 2. If the application is currently busy processing an event and the user touches a window belonging to a different application then we drop the currently queued events so the other application can start processing the gesture immediately. Note that the system takes care of synthesizing cancelation events automatically for any events that it drops. Added some new handle types to allow the native dispatcher to indirectly refer to the WindowManager's window state and app window token. This was done to enable the dispatcher to identify the application to which each window belongs but it also eliminates some lookup tables and linear searches through the window list on each key press. Bug: 3224911 Change-Id: I9dae8dfe23d195d76865f97011fe2f1d351e2940
ndroid.mk
nputApplication.h
nputDispatcher.cpp
nputDispatcher.h
nputWindow.cpp
nputWindow.h
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|
95712850665492af670824abdba77f0944d984d1 |
05-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Only allow touch events from one device at a time. Reject movements from other devices when one device is already down. This fixes jittery behavior when the user moves the mouse and touches the screen at the same time. Change-Id: I99151c8f2596a3139720f776bcbc559d4b314878
nputDispatcher.cpp
nputDispatcher.h
|
b4ff35df5c04aec71fce7e90a6d6f9ef7180c2ad |
03-Jan-2011 |
Jeff Brown <jeffbrown@google.com> |
Mouse pointer integration. Added support for loading the pointer icon from a resource. Moved the system server related bits of the input manager out of libui and into libinput since they do not need to be linked into applications. Change-Id: Iec11e0725b3add2b905c51f8ea2c3b4b0d1a2d67
ndroid.mk
ventHub.cpp
ventHub.h
nputDispatcher.cpp
nputDispatcher.h
nputManager.cpp
nputManager.h
nputReader.cpp
nputReader.h
ointerController.cpp
ointerController.h
ests/Android.mk
ests/InputDispatcher_test.cpp
ests/InputReader_test.cpp
|