summaryrefslogtreecommitdiffstats
path: root/libs/androidfw
Commit message (Collapse)AuthorAgeFilesLines
* Port the legacy velocity tracker strategy.Jeff Brown2012-06-041-0/+126
| | | | | | | | For comparison purposes, port the legacy velocity tracker algorithm as it behaved prior to ICS. Bug: 6413587 Change-Id: I7e8e56584dcdb1a3c660ca9d8f9c5bd5d868e449
* Implement a second order integrating VT strategy.Jeff Brown2012-06-041-11/+37
| | | | | Bug: 6413587 Change-Id: I51bc7b8cbff22b10b728fc84ee15370e9984dd55
* Implement a weighted least squares VelocityTracker strategy.Jeff Brown2012-06-041-21/+126
| | | | | | | No change to the default strategy. Bug: 6413587 Change-Id: I08eb6f9a511e65ad637359b55b5993c26ba93b40
* Implement an integrating VelocityTracker strategy.Jeff Brown2012-06-031-0/+104
| | | | | | | | | | | This algorithm better tolerates certain kinds of errors in the touch input than the least squares strategy but it may underestimate the velocity of accelerating movements. This algorithm is mainly of interest as a baseline for testing and comparison with the least squares algorithm, which remains the default. Bug: 6413587 Change-Id: I8ddb50084e44875e234717907e5b06d03f59788c
* Make velocity tracker strategy configurable.Jeff Brown2012-06-031-17/+74
| | | | | | | | | | This change is very useful for testing purposes because it makes it easy to compare different implementations to see how they behave. There is no change to the current default strategy. Bug: 6413587 Change-Id: I4d8567aa4160571ba9fa397ce419882cd9366749
* Detect when pointer has stopped moving.Jeff Brown2012-05-141-6/+25
| | | | | | | | | | | | Some input devices do not generate ACTION_MOVE events while all pointers have stopped, thereby lulling the VelocityTracker into a false sense of complacency. Before handling the following sample, reset the VelocityTracker state so as not to be influenced by earlier samples before the pointer stopped. The velocity after stopping is assumed to be discontinuous. Bug: 6413587 Change-Id: I6387bc036ff141d083d3d17a89e37eeaa3188349
* Fix pointer indexing issue in VelocityTracker.Jeff Brown2012-05-141-6/+13
| | | | | | | | | VelocityTracker was implicitly assuming that the pointer ids in a MotionEvent were ordered. That is not necessarily the case so we need to be careful while copying the pointer coordinates out. Bug: 6413587 Change-Id: I3b23a954f893eebdf786f2a94207149b092ef036
* Improve touch event resampling.Jeff Brown2012-05-142-67/+153
| | | | | | | | | | | | | | | | | | | Fixed a few bugs related to the id-to-index mapping for pointer coordinates. Tightened the bounds on the resampling time interval to avoid predicting too far into the future. Only lerp X and Y components of motion events. Alter the future to satisfy past predictions. (Rewrite touch events to conceal obvious discontinuities.) Added a system property to control whether resampling is enabled for debugging purposes. Bug: 6375101 Change-Id: I35972d63278bc4e78148053a4125ad9abeebfedb
* More VelocityTracker refactoring.Jeff Brown2012-05-131-49/+89
| | | | | Bug: 6413587 Change-Id: Ida1152e7a34d5fe5caab5e6b5e1bc79f6c7a25e6
* Minor refactoring before starting on velocity tracker changes.Jeff Brown2012-05-114-508/+558
| | | | | Bug: 6413587 Change-Id: I5eba2bb57193bff78cb3740de5f87aca0b31d154
* Improve handling of built-in keyboard.Jeff Brown2012-05-011-3/+4
| | | | | | | | | | | | | | | | | 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
* Resample touch events on frame boundaries.Jeff Brown2012-04-273-51/+302
| | | | | Bug: 6375101 Change-Id: I8774e366306bb2b6b4e42b913525bf25b0380ec3
* More work on international keyboards.Jeff Brown2012-04-233-8/+8
| | | | | | | | | | | | | | | | | Changed the English US keymaps to implement a strict US key map with no additional ALT functions. Fixed a bug copying the alias in the InputDevice copy constructor. Added support for end of line comments in KCM and KL files. Added the German keyboard layout. Sorted the keys in the keyboard layout files by physical arrangement to make it easier to maintain them. Bug: 6110399 Change-Id: If44d83de5b98f2bf0016cbb8e12264387b286aaa
* Get alias for Bluetooth devices.Jeff Brown2012-04-201-6/+5
| | | | | | | | | | | 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
* Improve handling of certain keyboard layout properties.Jeff Brown2012-04-181-8/+62
| | | | | | | | | | | | | | | Automatically choose a default value for the 'number' property based on the characters that the key can generate. Don't generate any character when ctrl, alt or meta is pressed unless the behavior exactly matches the modifier keys that are pressed. Simplified the basic keyboard layouts taking into account the new features. Bug: 6110399 Change-Id: Ibc0f0b50c2dcf3f962a33ac77c24d2993b77637d
* Add Dvorak keyboard layout.Jeff Brown2012-04-172-10/+118
| | | | | | | | | 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
* Support loading keyboard layout overlays from resources.Jeff Brown2012-04-172-24/+106
| | | | | | | | | | | | | | | | | | | | | | 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
* Add support for input devices that have vibrators.Jeff Brown2012-04-131-0/+2
| | | | | | | | | | 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
* Notify applications when input devices change.Jeff Brown2012-04-121-3/+6
| | | | | | | | | | | | | | | | | 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
* HID usage should take precedence over scan code.Jeff Brown2012-04-121-6/+6
| | | | Change-Id: Ibd8988e3dcc0d64f4019ffe491d9789733f9d243
* Refactor key code mapping.Jeff Brown2012-04-111-15/+32
| | | | | | | | | | | | | | | | | | | 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
* Request key maps from input manager service.Jeff Brown2012-04-106-184/+296
| | | | | | | | | | | | | | | | | | 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
* Add a unique input device descriptor.Jeff Brown2012-04-061-3/+6
| | | | | | | | | | | | | 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
* frameworks/base: move Zip* from libandroidfw to libutilsColin Cross2012-03-228-1401/+5
| | | | | | | ZipUtils is needed by build/tools, move it from libandroidfw (frameworks/base) to libutils (frameworks/native). Change-Id: I2b4b7adcdf68eb25ee7cba5dd3b69eadf0523af3
* Merge "Fix spurious ANRs in native activities."Jeff Brown2012-03-132-0/+56
|\
| * Fix spurious ANRs in native activities.Jeff Brown2012-03-132-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some native activities experienced ANRs when the input consumer deferred an input event due to client-side batching. If the input channel was fully emptied then the client had no way of knowing that it should wake up to handle the deferred input event. This patch also fixes some lock issues in the native activity input queue implementation. In at least one error case, it was possible for a function to exit without releasing the lock. Bug: 6051176 Change-Id: I4d9d843237e69b9834f8d8b360031b677fcab8c3
* | Fix issue #6054627: resource matching issue of size qualifiersDianne Hackborn2012-03-091-49/+40
|/ | | | | | | Resource matching would incorrectly identify two configs with the same value as better than. Change-Id: I7297dcf58fd5a43f1a5ff53bb093eeeb2cad090f
* fixup hardcoded include paths for new projectMathias Agopian2012-03-073-2/+81
| | | | Change-Id: Id443ec5c99bb4d7653905f1be1f72a029e0cf087
* move CursorWindow from libbinder to libandroidfwMathias Agopian2012-02-272-0/+352
| | | | Change-Id: I3b304e4f74e0d0ec8b20c57296c62449c9a0f792
* attempt to fix sdk buildMathias Agopian2012-02-211-0/+3
| | | | Change-Id: I94f32a9a7abccb52487bb9ff5e286faa4acfceff
* another attempt at fixing the linux buildMathias Agopian2012-02-211-1/+1
| | | | Change-Id: Iac20439fd6eea4682859112e72f051294bc87ef6
* another attempt to fix the linux buildMathias Agopian2012-02-211-1/+1
| | | | Change-Id: Ifd4714de7281ffc8a8c90fb25fb34719a19a9b6f
* attempt to fix linux buildsMathias Agopian2012-02-211-1/+1
| | | | Change-Id: I46d6f914fdc32dc26cc71bed3399e202f00eeb2a
* frameworks/base refactoringMathias Agopian2012-02-2026-0/+17439
create the new libandroidfw from parts of libui and libutils Change-Id: I1584995616fff5d527a2aba63921b682a6194d58