summaryrefslogtreecommitdiffstats
path: root/native
Commit message (Collapse)AuthorAgeFilesLines
* Fade out the mouse pointer after inactivity or other events.Jeff Brown2011-03-021-1/+2
| | | | | | | | | | | | | | 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
* Add support for mouse hover and scroll wheel.Jeff Brown2011-02-251-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add new hover move action and scroll wheel plumbing.Jeff Brown2011-02-191-1/+7
| | | | | | | | | | | | 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
* Add new axes for joysticks and mouse wheels.Jeff Brown2011-02-191-0/+30
| | | | | | | | | | | | | | | | | | 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
* Fix a regression with MotionEvent parceling.Jeff Brown2011-02-171-25/+25
| | | | | | Also added some more unit tests. Change-Id: I413654294d1a998eec056884e6df5eaa50f3daf4
* Add support for arbitrary axes in MotionEvents.Jeff Brown2011-02-152-12/+49
| | | | | | | | | | | 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
* Merge "Add joystick support to framework."Jeff Brown2011-01-172-0/+19
|\
| * Add joystick support to framework.Jeff Brown2011-01-172-0/+19
| | | | | | | | Change-Id: I95374436708752e1a9cff3f85c5b9bc3e0987961
* | Add API to get path to OBBs.Dianne Hackborn2011-01-161-0/+7
| | | | | | | | | | | | | | | | | | Also hide the bitmap thumbnail stuff, we can't support it in its current form. And fix some bugs with propagating paths to native code. Yikes! Change-Id: I13ab37ddbdba5c073489cba5eab035117d3c1574
* | Flush Binder commands in ndk looper.Jeff Brown2011-01-161-1/+5
|/ | | | | Bug: 3258183 Change-Id: Id79757d7b5c98333b4d3f39ce79ecc76b7be6941
* Introduce NDK API for 64-bit assetsKenny Root2010-12-132-2/+65
| | | | | | | Assets were switched to using 64-bit all through the system, so switch the NDK to using this new API as well. Change-Id: I2817b11369db3a4dd504b839ef1a3a9780b83533
* Merge "Change assets to use 64-bit API"Kenny Root2010-12-081-1/+1
|\
| * Change assets to use 64-bit APIKenny Root2010-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The asset system and supporting libraries were using off_t instead of off64_t to access files larger than 2GB (32-bit signed). This change replaces all off_t with off64_t and lseek64. There is a new utils/Compat.h added for Mac OS compatibility. Also fixed some size-related compiler warnings. Bug: 3205336 Change-Id: I9097b3cb7a602e811fe52f245939d8975da55e9e
* | Add support for fallback keycodes.Jeff Brown2010-12-072-1/+10
|/ | | | | | | | | | | | | | | | | | | | | | | | | | This change enables the framework to synthesize key events to implement default behavior when an application does not handle a key. For example, this change enables numeric keypad keys to perform their associated special function when numlock is off. The application is informed that it is processing a fallback keypress so it can choose to ignore it. Added a new keycode for switching applications. Added ALT key deadkeys. New default key mappings: - ESC -> BACK - Meta+ESC -> HOME - Alt+ESC -> MENU - Meta+Space -> SEARCH - Meta+Tab -> APP_SWITCH Fixed some comments. Fixed some tests. Change-Id: Id7f3b6645f3a350275e624547822f72652f3defe
* Add new keycodes initially used for GoogleTV devices.Jason Bayer2010-11-111-0/+22
| | | | Change-Id: I1b901037d6d401931dd3ec6f7d5e1e6ad165d1c9
* Tell system server whether the app handled input events.Jeff Brown2010-11-081-1/+1
| | | | | | | | | | Refactored ViewRoot, NativeActivity and related classes to tell the dispatcher whether an input event was actually handled by the application. This will be used to move more of the global default key processing into the system server instead of the application. Change-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28
* Rename the locked meta key constants for clarity.Jeff Brown2010-11-051-6/+6
| | | | | | Also added some tests for LED setting. Change-Id: I3fd86322afd07ae8de52d1ccbc2fae2c6d586641
* Add plumbing for volume mute key.Jeff Brown2010-11-021-1/+1
| | | | | | | | Full support for the volume mute key will be implemented in a later change. Bug: 2912307 Change-Id: I98c27d6360f159c8b7447e04b45f442eff87b38a
* am 1b98a9e6: am 5219dd8e: Merge "add format parameter to setBufferGeometry" ↵Mathias Agopian2010-10-262-3/+3
|\ | | | | | | into gingerbread
| * add format parameter to setBufferGeometryMathias Agopian2010-10-252-3/+3
| | | | | | | | Change-Id: I7cc2acdc6e65e9468ecfd5b2f22e6b495a383be9
* | am c2f78020: am 23656899: Merge "Fix issue #3126018: No way to specify ↵Dianne Hackborn2010-10-241-2/+30
|\ \ | |/ | | | | | | | | | | | | | | NativeActivity\'s native method" into gingerbread Merge commit 'c2f78020d3887539fc90230d96465e4b1dc84d8e' * commit 'c2f78020d3887539fc90230d96465e4b1dc84d8e': Fix issue #3126018: No way to specify NativeActivity's native method
| * Merge "Fix issue #3126018: No way to specify NativeActivity's native method" ↵Dianne Hackborn2010-10-241-2/+30
| |\ | | | | | | | | | into gingerbread
| | * Fix issue #3126018: No way to specify NativeActivity's native methodDianne Hackborn2010-10-241-2/+30
| | | | | | | | | | | | Change-Id: I59de6a543e7f7f45d963a905829a3f56f32bf8cf
* | | am 2ef36763: am 860c2df4: Merge "Add unit tests for native input and fix ↵Jeff Brown2010-10-241-0/+2
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | bugs identified." into gingerbread Merge commit '2ef36763700eff5679d6012e7f078c57f1a4c465' * commit '2ef36763700eff5679d6012e7f078c57f1a4c465': Add unit tests for native input and fix bugs identified.
| * | Add unit tests for native input and fix bugs identified.Jeff Brown2010-10-231-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed a bug where we would lose the first touch point when swiping out of the virtual key area. Fixed a bug where we would not send an ACTION_MOVE event in cases where individual pointers went down/up and the remaining pointers actually moved. This is important since many applications do not handle pointer movements during ACTION_POINTER_DOWN or ACTION_POINTER_UP. In the case of ACTION_POINTER_UP the movement was completely lost since all pointers were dispatched using their old location rather than the new location. Improved motion event validation to check for duplicate pointer ids. Added an input source constant that was missing from the NDK api but defined in the framework api. Added a timestamp when reporting added/removed devices in EventHub. Bug: 3070082 Change-Id: I3206a030f43b7616e2f48006e5a9d522c4d92e56
* | am 4f734cab: am 7ce276b5: Merge "Update script for copying NDK ↵Dianne Hackborn2010-10-221-5/+5
|\ \ | |/ | | | | headers/library." into gingerbread
| * Update script for copying NDK headers/library.Dianne Hackborn2010-10-211-5/+5
| | | | | | | | Change-Id: Ia441ce37123d5b5cd343f2746671495705501fb5
* | am 86f1b643: am bf5efba2: Merge "Fix issue #3117918: No way to finish a ↵Dianne Hackborn2010-10-212-0/+10
|\ \ | |/ | | | | | | | | | | | | | | native activity" into gingerbread Merge commit '86f1b643d10e0b5b17ae01db3b81020db87b3295' * commit '86f1b643d10e0b5b17ae01db3b81020db87b3295': Fix issue #3117918: No way to finish a native activity
| * Fix issue #3117918: No way to finish a native activityDianne Hackborn2010-10-212-0/+10
| | | | | | | | Change-Id: Ic53e712f7ab5412d72a31b96ecba252344b91644
* | Add keycodes and meta-key modifiers to support external keyboards.Jeff Brown2010-10-152-1/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added new key maps for external keyboards. These maps are intended to be shared across devices by inheriting the "keyboards.mk" product makefile as part of the device's product definition. One of the trickier changes here was to unwind some code in MetaKeyKeyListener that assumed that only the low 8 bits of the meta key state were actually used. The new code abandons bitshifts in favor of simple conditionals that are probably easier to read anyways. The special meta key state constants used by MetaKeyKeyListener are now (@hide) defined in KeyEvent now so as to make it clearer that they share the same code space even if those codes are not valid for KeyEvents. The EventHub now takes care of detecting the appropriate key layout map and key character map when the device is added and sets system properties accordingly. This avoids having duplicate code in KeyCharacterMap to probe for the appropriate key character map although the current probing mechanism has been preserved for legacy reasons just in case. Added support for tracking caps lock, num lock and scroll lock and turning their corresponding LEDs on and off as needed. The key character map format will need to be updated to correctly support PC style external keyboard semantics related to modifier keys. That will come in a later change so caps lock doesn't actually do anything right now except turn the shiny LEDs on and off... Added a list of symbolic key names to KeyEvent and improved the toString() output for debug diagnosis. Having this list in a central place in the framework also allows us to remove it from Monkey so there is one less thing to maintain when we add new keycodes. Bug: 2912307 Change-Id: If8c25e8d50a7c29bbf5d663c94284f5f86de5da4
* | am 2f98a585: am 49ec3dff: Merge "OBB: Change documentation to reflect ↵Kenny Root2010-10-151-4/+4
|\ \ | |/ | | | | | | | | | | | | | | reality" into gingerbread Merge commit '2f98a585cda066689b1b525322c51fcacbc3770b' * commit '2f98a585cda066689b1b525322c51fcacbc3770b': OBB: Change documentation to reflect reality
| * OBB: Change documentation to reflect realityKenny Root2010-10-131-4/+4
| | | | | | | | | | | | | | | | | | We can't reliably detect when the key for an OBB is incorrect, so just remove the mention in the documentation. It still returns an error, but just not the most specific error. Bug: 3091064 Change-Id: I70e506822f2178a0ac5e4617fe545b23ce0026f4
* | resolved conflicts for merge of 8bb7a1df to masterKenny Root2010-10-132-34/+128
|\ \ | |/ | | | | Change-Id: Ieec036f494a54eab74a27b954d1423bf981dd3f9
| * OBB: rearrange to be entirely asynchronousKenny Root2010-10-112-34/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | Rearrange structure of MountService handling of OBBs to be entirely asynchronous so we don't rely on locking as much. We still need the locking to support dumpsys which has been improved to output all the data structures for OBBs. Added more tests to cover more of the error return codes. Oh and fix a logic inversion bug. Change-Id: I34f541192dbbb1903b24825889b8fa8f43e6e2a9
* | am 22cb4ef8: am d577cfd7: Merge "Switch Looper back to using poll() instead ↵Jeff Brown2010-10-101-0/+9
|\ \ | |/ | | | | | | | | | | | | | | of epoll()." into gingerbread Merge commit '22cb4ef8ce9c4d5536ac5cee5c40b82bfa56ccc5' * commit '22cb4ef8ce9c4d5536ac5cee5c40b82bfa56ccc5': Switch Looper back to using poll() instead of epoll().
| * Switch Looper back to using poll() instead of epoll().Jeff Brown2010-10-071-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | Added a couple of micro-optimizations to avoid calling wake() unnecessarily and reduce JNI overhead slightly. Fixed a minor issue where we were not clearing the "next" field of Messages returned by the MessageQueue so the Message would hold on to its successor and potentially prevent the GC from collecting it if the message were leaked somehow. Change-Id: I488d29417ce0cdd7d0e447cda76ec978ef7f811c
* | am c3bc8b7b: am 1bfbf19b: Merge "Fix night/notnight resource folder ↵Dianne Hackborn2010-09-301-2/+2
|\ \ | |/ | | | | | | | | | | | | | | handling." into gingerbread Merge commit 'c3bc8b7b08611c8d86919f4695430990bc6b475d' * commit 'c3bc8b7b08611c8d86919f4695430990bc6b475d': Fix night/notnight resource folder handling.
| * Fix night/notnight resource folder handling.Tobias Haamel2010-09-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The values for NIGHT_NO / NIGHT_YES are shifted later on in the ResourceTypes header file to match with the ones specified in the Configuration class file. This is basically the same as it's done for the SCREEN_LONG_NO / SCREEN_LONG_YES constants. Since the values are also masked later on by 0x30 (MASK_UI_MODE_NIGHT) the system currently recognizes resources specified in night/notnight folders as if they were resources which can be used for any of both modes. This results in an error saying that the resources are already specified somewhere else. Should fix: http://b/issue?id=3022577 Change-Id: I554b37231ea4c69a8625e519150473fddce7d8ed
* | resolved conflicts for merge of d8e8186c to masterKenny Root2010-09-285-15/+149
|\ \ | |/ | | | | Change-Id: Ica3f6cd958717ea7033cab8b4bf9cd3425c1e1c5
| * Update OBB API to include callbacksKenny Root2010-09-285-15/+149
| | | | | | | | | | | | | | | | | | | | | | | | Add a callback for users of the StorageManager API to be able to receive notifications when the requested operation completes for mountObb and unmountObb. Add NDK API to get to ObbInfo like the Java API has. Also update the docs for the API and remove the "STOPSHIP" comments. Change-Id: I23a4409c7f8b74d3169614beba920b4d667990a4
* | am 61cf67a2: am 24326f72: Merge "Input API review." into gingerbreadJeff Brown2010-09-161-4/+0
|\ \ | |/ | | | | | | | | | | Merge commit '61cf67a220ba3205737c646c1c836a92074220de' * commit '61cf67a220ba3205737c646c1c836a92074220de': Input API review.
| * Input API review.Jeff Brown2010-09-141-4/+0
| | | | | | | | | | | | | | Drop currently unsupported input features. Add documentation comments. Change-Id: I407d2e1dd90c5ee82983a3ccf177430d35ee7592
* | am 14bc6b5d: am 09340a4b: Merge "Replace epoll() with poll() and rename ↵Jeff Brown2010-09-156-110/+168
|\ \ | |/ | | | | | | | | | | | | | | PollLoop to Looper." into gingerbread Merge commit '14bc6b5d0677e5c454a67775c852f90389bb4567' * commit '14bc6b5d0677e5c454a67775c852f90389bb4567': Replace epoll() with poll() and rename PollLoop to Looper.
| * Replace epoll() with poll() and rename PollLoop to Looper.Jeff Brown2010-09-146-110/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of this change, consolidated and cleaned up the Looper API so that there are fewer distinctions between the NDK and non-NDK declarations (no need for two callback types, etc.). Removed the dependence on specific constants from sys/poll.h such as POLLIN. Instead looper.h defines events like LOOPER_EVENT_INPUT for the events that it supports. That should help make any future under-the-hood implementation changes easier. Fixed a couple of compiler warnings along the way. Change-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae
* | resolved conflicts for merge of a05088c1 to masterJeff Brown2010-09-082-0/+23
|\ \ | |/ | | | | Change-Id: I7973f9f28586dec9b9659f8f662f40db7997a521
| * Add support for secure views.Jeff Brown2010-09-082-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the input manager whenever another visible window is partly or wholly obscured the target of a touch event so that applications can filter touches accordingly. Added a "filterTouchesWhenObscured" attribute to View which can be used to enable filtering of touches when the view's window is obscured. Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2
* | am a1205f07: am 2d3739d4: Merge "Modify native ALooper to take an explicit ↵Dianne Hackborn2010-09-076-16/+18
|\ \ | |/ | | | | | | | | | | | | | | ident." into gingerbread Merge commit 'a1205f07a6f0c745e8f42f16fe38c06af04143c7' * commit 'a1205f07a6f0c745e8f42f16fe38c06af04143c7': Modify native ALooper to take an explicit ident.
| * Modify native ALooper to take an explicit ident.Dianne Hackborn2010-09-076-16/+18
| | | | | | | | | | | | | | | | The ALooper API now uses an explicit "identifier" for the integer that is returned rather than implicitly using the fd. This allows the APIs that had the fd to be a little more sane. Change-Id: I8507f535ad484c0bdc4a1bd016d87bb09acd7ff0
* | am df02df11: am 307ed31c: Merge "Remove incomplete input device enumeration ↵Jeff Brown2010-08-312-128/+0
|\ \ | |/ | | | | | | | | | | | | | | NDK API." into gingerbread Merge commit 'df02df115a594553b3ebaa95a0a7f7185a8787d3' * commit 'df02df115a594553b3ebaa95a0a7f7185a8787d3': Remove incomplete input device enumeration NDK API.
| * Remove incomplete input device enumeration NDK API.Jeff Brown2010-08-312-128/+0
| | | | | | | | Change-Id: I32de74ff5fcf0e29179a2aee03ddabd22fa485bb