summaryrefslogtreecommitdiffstats
path: root/services/jni
Commit message (Collapse)AuthorAgeFilesLines
* Separate the internal and external display rotations.Jeff Brown2012-05-021-8/+16
| | | | | | | | | | | When attached to an HDMI touch screen, the input system needs to know the size and rotation of the external display independent of the internal display. The size was already being reported separately but not the rotation. The inconsistency can cause problems if the internal display's natural rotation is portrait but the external display's natural rotation is landscape. Change-Id: Id344f04c1ba032625f6265766be66f9ddaa2cc0b
* Improve handling of built-in keyboard.Jeff Brown2012-05-011-33/+0
| | | | | | | | | | | | | | | | | 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
* UsbService: Add support for accessory initiating USB audio supportMike Lockwood2012-04-261-0/+13
| | | | | Change-Id: I0e468f4b841de9e1ca7b75a05fc58299dbc78222 Signed-off-by: Mike Lockwood <lockwood@google.com>
* Get alias for Bluetooth devices.Jeff Brown2012-04-201-7/+32
| | | | | | | | | | | 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
* Support loading keyboard layout overlays from resources.Jeff Brown2012-04-172-1/+48
| | | | | | | | | | | | | | | | | | | | | | 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/+36
| | | | | | | | | | 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-34/+44
| | | | | | | | | | | | | | | | | 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
* Request key maps from input manager service.Jeff Brown2012-04-101-81/+2
| | | | | | | | | | | | | | | | | | 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
* Fix lid switch interpretation.Jeff Brown2012-04-091-1/+2
| | | | | | | Also remove unnecessary permission check for method that is only called internally. Change-Id: I32f63fc3e96b06709d18b046ee2d3c8f310de70d
* Ensure that apps crash if they throw exceptions.Jeff Brown2012-04-061-2/+3
| | | | | | | | | | | | Previously, if an app threw an uncaught exception in an input, vsync or native activity callback, it would log the exception then continue limping merrily along. In the case of input, it could result in an ANR occurring because we had not drained all of the pending input events and marked them as finished (we only marked the most recent one finished). Bug: 6304124 Change-Id: I87d76f7fd605e1a8af1237c66d8d62973080277e
* Add a unique input device descriptor.Jeff Brown2012-04-061-2/+12
| | | | | | | | | | | | | 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
* Refactor input system into its own service.Jeff Brown2012-04-056-292/+230
| | | | | | | | | | | | Extracted the input system from the window manager service into a new input manager service. This will make it easier to offer new input-related features to applications. Cleaned up the input manager service JNI layer somewhat to get rid of all of the unnecessary checks for whether the input manager had been initialized. Simplified the callback layer as well. Change-Id: I3175d01307aed1420780d3c093d2694b41edf66e
* fix libgui header locationMathias Agopian2012-02-271-2/+1
| | | | Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
* frameworks/base refactoringMathias Agopian2012-02-201-0/+1
| | | | | | create the new libandroidfw from parts of libui and libutils Change-Id: I1584995616fff5d527a2aba63921b682a6194d58
* frameworks/base refactoring.Mathias Agopian2012-02-171-1/+1
| | | | | | First step. Move libui includes to their new home: androidfw. Change-Id: Ic042b52fdba72f30edc3cc6339bf30b4c1b99662
* Merge "Remove the input dispatcher throttle."Jeff Brown2012-02-131-10/+0
|\
| * Remove the input dispatcher throttle.Jeff Brown2012-02-071-10/+0
| | | | | | | | | | | | | | This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: Iab33594bc5df8aa05232ef64c64e98fc61c5bf52
* | BatteryService: Don't fail to register native methods if kernel power supply ↵Mike Lockwood2012-02-101-59/+59
| | | | | | | | | | | | driver is missing Signed-off-by: Mike Lockwood <lockwood@android.com>
* | New Serial Manager API:Mike Lockwood2012-02-103-0/+85
|/ | | | | | | | | | | | | | | | | | | SerialManager: provides access to serial ports SerialPort: for reading and writing data to and from serial ports IO with both array based and direct ByteBuffers is supported. Accessing serial ports requires android.permission.SERIAL_PORT permission Each platform must configure list of supported serial ports in the config_serialPorts resource overlay (this is needed to prevent apps from accidentally accessing the bluetooth or other system UARTs). In addition, the platform uevent.rc file must set the owner to the /dev/tty* files to "system" so the framework can access the port. Signed-off-by: Mike Lockwood <lockwood@android.com>
* Rename LOG_ASSERT to ALOG_ASSERT DO NOT MERGESteve Block2012-01-091-1/+1
| | | | | | | See https://android-git.corp.google.com/g/157519 Bug: 5449033 Change-Id: I8ceb2dba1b031a0fd68d15d146960d9ced62bbf3
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-089-62/+62
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-062-4/+4
| | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
* Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGESteve Block2012-01-042-4/+4
| | | | | | | See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
* Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGESteve Block2012-01-034-12/+12
| | | | | | | See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
* split ComposerService out of SurfaceComposerClient.hMathias Agopian2011-11-281-0/+2
| | | | Change-Id: I1eb691f7ca263d5895d871ab675bb5826e0323c6
* Eliminate hw.keyboards system properties.Jeff Brown2011-11-151-0/+10
| | | | | | | | | | | | 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
* BatteryService(jni): properly handle read's return valueDima Zavin2011-10-281-3/+3
| | | | | Change-Id: I10f5cf3728424e7f5a0c1b460049102fd00a6246 Signed-off-by: Dima Zavin <dima@android.com>
* DO NOT MERGE. Improve screenshot chord debouncing.Jeff Brown2011-10-121-12/+19
| | | | | | | | | | | | | | | | | | | 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
* Fix input channel leak.Jeff Brown2011-08-305-37/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add a "show touches" option for demos and presentations.Jeff Brown2011-08-261-0/+34
| | | | | | Bug: 4569045 Change-Id: I8726ea292dd7def790a5e40d7d7e58968974f896
* Input system bug fixes, particularly for stylus.Jeff Brown2011-08-191-35/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add input system to Watchdog.Jeff Brown2011-08-101-0/+11
| | | | | | Bug: 5094994 Change-Id: I153866958efc64ac19bda8b997c1c9f6ad425ec4
* Resolve merge conflict for '75f1fdec':Mike Lockwood2011-08-041-2/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GPS Provider Service changes GPS engine needs to receive network state changes from Android fw. Added db query for the current APN, also added a new parameter between JNI / HAL to the new method in AGpsRilInterface struct for gps engine to receive APN from GPSLocationService Conflicts: services/java/com/android/server/location/GpsLocationProvider.java Change-Id: I33c45027f1571493d3525324f62d199517c4960c Signed-off-by: Mike Lockwood <lockwood@android.com>
| * am 0b3af353: am a82ee49a: am 8f5dd9ad: Merge "GPS Provider Service changes"Mike Lockwood2011-08-041-2/+10
| |\ | | | | | | | | | | | | * commit '0b3af353dcf61177158934a11404cf2914038696': GPS Provider Service changes
| | * GPS Provider Service changesKevin Tang2011-08-041-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GPS engine needs to receive network state changes from Android fw. Added db query for the current APN, also added a new parameter between JNI / HAL to the new method in AGpsRilInterface struct for gps engine to receive APN from GPSLocationService Change-Id: I62e35c948d2ac1961771d1a10581a3b8e695c05a Signed-off-by: Mike Lockwood <lockwood@android.com>
* | | am 21700fed: am 5f7203eb: am 5a27a754: am bd1dee94: Merge "gps: Adding ip ↵Mike Lockwood2011-07-281-2/+9
|\ \ \ | |/ / | | | | | | | | | | | | | | | address for AGps" * commit '21700fedfe29f6a0a752d2bea46142038e69136c': gps: Adding ip address for AGps
| * | am 5f7203eb: am 5a27a754: am bd1dee94: Merge "gps: Adding ip address for AGps"Mike Lockwood2011-07-281-2/+9
| |\ \ | | |/ | | | | | | | | | * commit '5f7203eb258503bc5d2ba29176bdf483a68a93b8': gps: Adding ip address for AGps
| | * gps: Adding ip address for AGpsStephen Li2011-07-281-2/+9
| | | | | | | | | | | | Change-Id: Ic590187d159853de2f1bd2912e159f0a00d8fb10
| | * am b0976320: Merge "DO NOT MERGE: Backport more USB accessory changes from ↵Mike Lockwood2011-03-151-1/+2
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | honeycomb" into gingerbread * commit 'b09763209980ff9210cc353f2410598220ec0480': DO NOT MERGE: Backport more USB accessory changes from honeycomb
| | | * DO NOT MERGE: Backport more USB accessory changes from honeycombMike Lockwood2011-03-151-1/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I8459c5ab9fbf0b3cad752041484a5de44ca9badd Signed-off-by: Mike Lockwood <lockwood@android.com>
| | * | am 78b8e1be: Merge "DO NOT MERGE: backport recent USB accessory changes from ↵Mike Lockwood2011-03-141-4/+3
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | honeycomb" into gingerbread * commit '78b8e1be97c61f7e0b28b145fadd0c646fd1c46b': DO NOT MERGE: backport recent USB accessory changes from honeycomb
| | | * DO NOT MERGE: backport recent USB accessory changes from honeycombMike Lockwood2011-03-111-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 4082651 Change-Id: Ie7c2fc796dd3c64f803acbd14210e5949683f4ed Signed-off-by: Mike Lockwood <lockwood@android.com>
| | * | am 40bbf929: DO NOT MERGE: Backport USB accessory support to gingerbreadMike Lockwood2011-03-021-2/+107
| | |\ \ | | | |/ | | | | | | | | | | | | * commit '40bbf9295d5245d3917629ce15f7b37670aef1ac': DO NOT MERGE: Backport USB accessory support to gingerbread
| | | * DO NOT MERGE: Backport USB accessory support to gingerbreadMike Lockwood2011-03-011-2/+107
| | | | | | | | | | | | | | | | Signed-off-by: Mike Lockwood <lockwood@android.com>
| | * | am 3333f8af: Merge "DO NOT MERGE UsbManager: squashed commit of:" into ↵Mike Lockwood2011-02-283-0/+39
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | gingerbread * commit '3333f8afb2d1eae8bfdb41fa87f86836ad8702f7': DO NOT MERGE UsbManager: squashed commit of:
| | | * DO NOT MERGE UsbManager: squashed commit of:Mike Lockwood2011-02-273-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | USB: Add functions for querying if a USB function is supported and enabled. Rename android.hardware.Usb to UsbManager and UsbObserver to UsbService Change-Id: I920a211934d993eab8ce744c1cc7b05342389286 Signed-off-by: Mike Lockwood <lockwood@android.com>
| | * | am dff6b8e7: Merge "Add --non-constant-id to aapt."Xavier Ducrohet2011-02-281-141/+83
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'dff6b8e71dda9f5d841fa26408714aec2aef1505': GpsLocationProvider: Clean up HAL initialization/cleanup sequence Fixed GSM encoded network initiated position request Ensuring thread-safe usage of DateFormat. Fixing infinite loop for zero duration. Fix for an infinite loop while scrolling lists. WAPPushManager, WAP Push over SMS message handler Add --non-constant-id to aapt.
| | | * | GpsLocationProvider: Clean up HAL initialization/cleanup sequenceMike Lockwood2011-02-231-141/+83
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Id5467000f3f3da5cbe1f112dad97a032688d2eac Signed-off-by: Mike Lockwood <lockwood@android.com>
| | * | | am 41395459: Merge "Filter virtual keys after touches. (DO NOT MERGE)" into ↵Jeff Brown2011-01-181-1/+25
| | |\ \ \ | | | | |/ | | | |/| | | | | | | | | | | | | | | | | | | | | gingerbread * commit '41395459e676cf9ab4059e08446656f145662c2d': Filter virtual keys after touches. (DO NOT MERGE)
| | | * | Filter virtual keys after touches. (DO NOT MERGE)Jeff Brown2011-01-111-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a new virtualKeyQuietTimeMillis configuration resource that sets the duration for which virtual keys will be dropped after recent touches on screen. The default value is 0; it is intended to be overridden per device using a resource overlay. This change is designed to help in two cases: 1. Swipes from touchscreen into virtual key area. 2. Accidental taps in virtual key area while using on-screen keyboard. Bug: 3089163 Change-Id: Id6733c83c2e2bc8d9553aa0e5c1fd74b741bec6e