Commit Graph

89 Commits

Author SHA1 Message Date
nadlabak
437e236427 Forward port 'Swap volume buttons' (2/3)
[mikeioannina]: Adjust for 5.0 changes

Change-Id: I5ed4ae2b7e69e2ada067ed1d3524b3d3fad30e2e
2015-10-17 13:58:48 -07:00
Christopher N. Hesse
00888b7eee inputflinger: disable touch input while using a stylus
Android 5.0 cannot form multitouch events from multiple input
devices. So it is not possible to report one touchpoint from the
stylus position and, at the same time, another touchpoint from a
finger touch. Instead, when a new input device starts up the currently
active input is cancelled. This is highly undesirable while writing
with the pen.

The easiest solution is to ignore non-stylus touch events while the
stylus is within range (hovering) of the touchscreen. For example,
N-trig digitizers implement this in hardware. But wacom digitizers do
report pen data simultaneously with touch data. This patch disables
(non-stylus) touch input within 50ms of stylus data. On my Galaxy
Note this is necessary to make stylus input usable.

Original commit by vbraun:
b9cb296130

Change-Id: I97f26369826e96c97461c8ae188f1c64dec1b4d3
2015-10-17 13:56:31 -07:00
Steve Kondik
ac9d8404f1 inputflinger: Add gesture sensor support
Change-Id: Ieca4e54439c47a817aaa6a9b6fabcee750ffc0c2
2015-10-17 13:53:44 -07:00
Steve Kondik
ccf7c200ce input: Adjust priority
* Bring into the desired group to get the best result.

Change-Id: I3bd031074cd7006994736b4c22d0294b6012f662
2015-10-17 13:51:11 -07:00
Michael Wright
a44766cf0e Cancel touches as well as pointer gestures.
Bug: 19264992
Change-Id: If48e0953b972c9d69f516906adf7c6faf67e3eb8
2015-07-13 09:44:02 +01:00
Michael Wright
3643c88f7b Merge "Send cancelation events to monitors when injection fails." into mnc-dev 2015-06-29 17:10:46 +00:00
Michael Wright
2f78b68cf1 Add new AINPUT_SOURCE_BLUETOOTH_STYLUS
Bug: 21531826
Change-Id: I3792860ad3f6579ceb50ccaa212f8fbd471a9b6b
2015-06-12 15:25:08 +01:00
Michael Wright
fa13dcf39f Send cancelation events to monitors when injection fails.
Bug: 20649729
Change-Id: I46cd14ac1f040d404c0b1581b38fa07a944e5fb9
2015-06-12 13:25:11 +01:00
Michael Wright
3a98172289 Only log dropped input when disabled for the first event.
Bug: 19851495
Change-Id: I8cb8076723c1ca1732c3bc37f283d8eb48b7bee0
2015-06-10 15:26:13 +01:00
Michael Wright
7b159c9a4f Revert "Revert "Add new MotionEvent actions for button press and release.""
This reverts commit 70b41ef580.
2015-05-14 14:48:03 +01:00
Michael Wright
70b41ef580 Revert "Add new MotionEvent actions for button press and release."
This reverts commit 48a8a0e432.
2015-05-14 14:46:17 +01:00
Michael Wright
48a8a0e432 Add new MotionEvent actions for button press and release.
Introduce ACTION_BUTTON_PRESS and ACTION_BUTTON_RELEASE as actions to
signal a button press or release. If these actions happen
simulanteously with a DOWN or UP event then they're explicitly
ordered to happen after the DOWN or preceding the UP in order to send
them to the most recently targeted view.

Also, introduce new stylus button constants that differ from the
constants we use for mouse buttons.

Bug: 20704355
Change-Id: Ib960a5004db5429ad2fc8db020704773e2978327
2015-05-14 13:25:41 +01:00
Michael Wright
53dca3aadd Use previous pressure value if the current fusion data is zero.
Occasionally we'll receive the stylus up signal (pressure = 0) before
we receive the touch screen up signal. Rather than giving pointer a
pressure value of 0 (which is one of the signals of hovering) or
falling back to the touchscreen pressure values (which would make for
an inconsistent stream), use the previous pressure value which should
always be non-zero for a stream of fused data.

Bug: 20449776
Change-Id: I71eb97e7c4ea53e42b0eb54fc1f8ae7f89aad9d1
2015-05-12 14:17:42 +01:00
Michael Wright
43fd19fd1a Synthesize events for pressure and button changes.
Even when there isn't movement on the touchscreen we should produce
events for pressure and button state changes generated by external
stylii.

Change-Id: I9fd7ba85902d5d6bfb28d5e5ff5d8f340a94c2bf
2015-05-12 14:08:47 +01:00
Michael Wright
e893dddb3f Merge "Default to TOOL_TYPE_STYLUS for external stylus events." 2015-04-21 21:46:32 +00:00
Michael Wright
5e17a5de88 Increase stylus data timeout.
Temporarily increase the stylus timeout while we figure out where the
delay in BT information is coming from.

Change-Id: I27ab5a4db4ad14358c6e6803961612420371fce9
2015-04-21 22:45:13 +01:00
Michael Wright
45ccacf937 Default to TOOL_TYPE_STYLUS for external stylus events.
Change-Id: Ife6a7c4802e8b1ec1ff8445e639f8a6d90a00592
2015-04-21 22:41:15 +01:00
Michael Wright
e2434fecb9 Revert "Increase stylus data timeout."
This reverts commit 8b0673ce0c.
2015-04-21 22:37:02 +01:00
Michael Wright
8b0673ce0c Increase stylus data timeout.
Sometimes stylus data will be delayed by 30 - 40ms. By increasing the
timeout we pretty much always pick up stylus data and the touch
latency feels surprisingly small.

Change-Id: I39f5b9037ce0444b1e957149d3f1c3a3137804cb
2015-04-21 15:06:43 +01:00
Michael Wright
4af18b90c1 Always update external stylus state.
This prevents us from dropping any states (namely the pressure
transition from non-zero to zero) if we get the touch up before we
get the stylus data.

Change-Id: Ifc198628d35b7079dc5ec23d81f9681d122757a0
2015-04-20 22:03:54 +01:00
Michael Wright
b85401d4ba Mark all InputReaderContext methods as pure virtual
Also, fix the build.

Change-Id: I45d3daa8c0710b2f9421e8ffd011d2d39c05e030
2015-04-17 18:35:15 +01:00
Michael Wright
842500e146 Fuse stylus and touch screen data.
TODO: Ensure we dispatch new pressure and button data when stylus
is stationary.

Change-Id: I10a665a9b81ff4b9acd01bf72f0fc2e0c2abc203
2015-04-17 16:37:16 +00:00
Tim Kilbourn
e5364c8c02 Add method stubs for input device properties.
Change-Id: Icd785cb55ae2b225102fa249240837a91a41aae3
2015-04-16 11:12:49 -07:00
Tim Kilbourn
063ff53d0b Pass through availability of audio mic for input devices.
Bug: 15374820
Change-Id: Id2ca6da10165e3a887ebfbb18f663a3bf316ac79
2015-04-09 10:02:16 -07:00
Tim Kilbourn
943f0a45d0 Merge "Stub implementations of HAL usage callbacks." 2015-03-31 20:22:44 +00:00
Tim Kilbourn
3447df165f Use EPOLLWAKEUP properly.
We were trying to use it only when it wasn't supported.

Bug: 19937342
Change-Id: Id35aef9ad84f101f7ada2eb87fb91e5c5e2b3357
2015-03-26 14:12:42 -07:00
Tim Kilbourn
8943ce38a6 Stub implementations of HAL usage callbacks.
Change-Id: I5c7effddb7fce85d7d33ea79ff7005d37943f520
2015-02-27 15:09:34 -08:00
Michael Wright
ca870723d1 Merge "Remove eng tag from input tests." 2015-02-24 03:06:40 +00:00
Michael Wright
eb4ed3e41d Remove eng tag from input tests.
Tests always get built with the platform now anyways. Also, remove
the dependency on libandroidfw since it causes issues on PDK builds.

Change-Id: Ib73ec620abac3782d9fdae48778064c06b30aae0
2015-02-23 17:20:16 -08:00
Michael Wright
857a35d267 Merge "Move inputflinger process to host directory" 2015-02-24 00:06:35 +00:00
Michael Wright
6f783602c0 Move inputflinger process to host directory
Change-Id: I08ee44bf8b93e7f1760ee9f8d9876a1e2e2e86c8
2015-02-23 16:04:57 -08:00
Jeff Brown
ae5a081ddf am 7735c058: am c9aa628d: Cancel touch events when a low-level touch gesture occurs.
* commit '7735c058869e0a7fd716054110aa6cb4eff4b075':
  Cancel touch events when a low-level touch gesture occurs.
2015-02-18 11:38:55 +00:00
Jeff Brown
7735c05886 am c9aa628d: Cancel touch events when a low-level touch gesture occurs.
* commit 'c9aa628d065eb08d6fa30f0ac21c6eca4cfbab75':
  Cancel touch events when a low-level touch gesture occurs.
2015-02-18 02:17:08 +00:00
Jeff Brown
c9aa628d06 Cancel touch events when a low-level touch gesture occurs.
When the touch firmware or driver sends a key event that is triggered
by a low-level gesture such as a palm slap.  For this to work, the
touch device's .kl file must specify the "GESTURE" flag for each
key that is produced by a gesture.

Note that the "VIRTUAL" flag should also be specified for any such
keys for which we would like to generate haptic feedback.

eg. key 142   SLEEP   VIRTUAL GESTURE

Bug: 19264992
Change-Id: Ief494ec7e3ca66d2358a1001fdfae4f263ee1cd1
2015-02-12 11:27:24 -08:00
Elliott Hughes
e0e29de5c1 am 23958e14: am a7dcab69: Merge "We have POSIX clocks, and we don\'t need to ask for the openssl headers."
* commit '23958e1436565b333ce7f3022bc52a10d4732ef6':
  We have POSIX clocks, and we don't need to ask for the openssl headers.
2015-01-10 00:18:15 +00:00
Elliott Hughes
23958e1436 am a7dcab69: Merge "We have POSIX clocks, and we don\'t need to ask for the openssl headers."
* commit 'a7dcab6954467fa3726824a099b83d0e7490d6d5':
  We have POSIX clocks, and we don't need to ask for the openssl headers.
2015-01-10 00:14:12 +00:00
Elliott Hughes
5ea47f7a32 We have POSIX clocks, and we don't need to ask for the openssl headers.
This code doesn't need to run on the Mac, and the BoringSSL transition
will be easier without references to external/openssl.

Change-Id: I14ea11fa2911af0f4e95e69636e6a2c26126cbe0
2015-01-09 15:56:15 -08:00
Narayan Kamath
a3ef067c00 am 106547c1: am 033f7e8e: Merge "InputDispatcher: Optimize count()"
* commit '106547c1e33453b7e20b7b387087092d36aa6a72':
  InputDispatcher: Optimize count()
2014-12-24 10:37:38 +00:00
Narayan Kamath
106547c1e3 am 033f7e8e: Merge "InputDispatcher: Optimize count()"
* commit '033f7e8e35ac76404fe823a67e07ba7c42bc357c':
  InputDispatcher: Optimize count()
2014-12-24 10:32:20 +00:00
Narayan Kamath
033f7e8e35 Merge "InputDispatcher: Optimize count()" 2014-12-24 10:25:43 +00:00
Jon McCaffrey
65dbe971b1 InputDispatcher: Optimize count()
Count items as they are added and removed rather than iterating over the
entire list to count them.

Increases performance slightly, particularly when tracing is turned on,
which causes count to be queried more often, and when the number of
items in the queues grow large.  This can happen due to applications not
responding, for example.

Change-Id: I0f11f7edd46089612af910cdfabfeb3ee685d7d9
2014-11-26 12:04:47 -08:00
Chih-hung Hsieh
ebcc45df77 am accddd9c: am 947a6adf: Merge "Remove comparisons that can\'t be true"
* commit 'accddd9ca0bef572674b895b9b2b0553b133c793':
  Remove comparisons that can't be true
2014-11-18 00:27:52 +00:00
Chih-hung Hsieh
accddd9ca0 am 947a6adf: Merge "Remove comparisons that can\'t be true"
* commit '947a6adf97d9ba86e3ef5704d523b4971246ff1e':
  Remove comparisons that can't be true
2014-11-18 00:23:08 +00:00
Bernhard Rosenkränzer
6183eb72ec Remove comparisons that can't be true
keyBitmask and ledBitmask are arrays, "!their address" always evaluates to
false. clang complains about this.

Change-Id: I6aed45a203b0eeaad2093dbdebea03a2c2fc1a3d
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-11-17 21:09:14 +01:00
Dan Albert
06235085c6 am 36ec7a8b: am d72ff140: Merge "Move frameworks/native to libc++."
* commit '36ec7a8b99e287d923bfacd2ef69661818aeb85e':
  Move frameworks/native to libc++.
2014-11-16 17:35:37 +00:00
Dan Albert
36ec7a8b99 am d72ff140: Merge "Move frameworks/native to libc++."
* commit 'd72ff140e0df44106cd8539396ce686aa8f3306a':
  Move frameworks/native to libc++.
2014-11-16 17:31:57 +00:00
Dan Albert
6d72063cfd Move frameworks/native to libc++.
I'm pretty sure I had done this before... Must have been new
dependencies that slipped in when L merged in.

Bug: 15193147
Change-Id: Ib9b1b8a65665d25c33c6141b9476a8e13c4084e0
2014-11-15 18:22:55 -08:00
Craig Mautner
d2af156688 am 66af95fa: am 83cbc5a7: Merge "Stop consuming input on error dialogs." into lmp-mr1-dev
* commit '66af95fa175baa8c0c9b9b2caa5141f66d635928':
  Stop consuming input on error dialogs.
2014-11-12 16:36:48 +00:00
Craig Mautner
66af95fa17 am 83cbc5a7: Merge "Stop consuming input on error dialogs." into lmp-mr1-dev
* commit '83cbc5a7588793435fd986e220fe1f9b88342069':
  Stop consuming input on error dialogs.
2014-11-12 03:51:04 +00:00
Craig Mautner
0c17a2b2ea Stop consuming input on error dialogs.
This code is no longer necessary and was preventing input from
reaching their desired windows. See bug 17648830.

Change-Id: Ib1c026ece70e6fa98343340b89af4199d6d0ffca
2014-11-11 14:05:03 -08:00