Commit Graph

1525 Commits

Author SHA1 Message Date
Svetoslav Ganov
f9fa622cc0 Merge "Touch exploration feature, event bubling, refactor" 2011-04-22 16:29:07 -07:00
Dianne Hackborn
dacea8ce50 Start work on simulating landscape/portrait when orientation is locked.
Not yet working, so turned off.

Also fix a bug where the display size configuration became inconsistent
after a configuration change -- we now figure out everything about the
display size when computing a new configuration.
2011-04-22 11:23:13 -07:00
Svetoslav Ganov
ac84d3ba81 Touch exploration feature, event bubling, refactor
1. Added an Input Filter that interprets the touch screen motion
   events to perfrom accessibility exploration. One finger explores.
   Tapping within a given time and distance slop on the last exlopred
   location does click and long press, respectively. Two fingers close
   and in the same diretion drag. Multiple finglers or two fingers in
   different directions or two fingers too far away are delegated to
   the view hierarchy. Non moving fingers "accidentally grabbed the
   device for the scrren" are ignored.

2. Added accessibility events for hover enter, hover exit, touch
   exoloration gesture start, and end. Accessibility hover events
   are fired by the hover pipeline. An accessibility event is
   dispatched up the view tree and the topmost view fires it.
   Thus predecessors can augment the fired event. An accessibility
   event has several records and a predecessor can optionally
   modify, delete, and add such to the event.

3. Added onPopulateAccessibilityEvent and refactored the existing
   accessibility code to use it.

4. Added API for querying the currently enabled accessibility services
   by feedback type.

Change-Id: Iec03c6c3fe298de3f14cb6efdbb9b198cd531a0c
2011-04-21 18:33:52 -07:00
Dianne Hackborn
9d13264f6b Fix bug in deciding which rotation to use for an orientation.
Change-Id: Icc928c2188a5865035cafcdab2efd5bae3132b1f
2011-04-21 17:27:42 -07:00
Dianne Hackborn
44bc17c6b5 Rework display size access.
Applications now get the display size from the window manager.  No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I2958a6660895c1cba2b670509600014e55ee9273
2011-04-21 15:17:52 -07:00
Dianne Hackborn
9567a66a5e Deprecate a bunch of APIs.
And clean up some documentation.

Change-Id: I7882183b3daf883b7ac6098d19f88dc7cfbcdf61
2011-04-20 10:26:44 -07:00
Jeff Brown
bbdc50b102 Track unhandled input events in consistency verifiers.
This fixes spurious verification errors that would be generated
when a view declined an initial event such as ACTION_DOWN.  Since
the view would not receive the rest of the event stream, it would
not see the corresponding ACTION_UP and the next ACTION_DOWN would
trigger a spurious verification error.

Change-Id: I2386acf378cd1765d5446faed5ad9c6525f8b400
2011-04-19 23:46:52 -07:00
Jeff Brown
2352b978a3 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
2011-04-19 15:35:51 -07:00
satok
d4fce2b7f1 Add comments for APIs of InputMethodManager added to Honeycomb
Change-Id: I89501889c612aaeca503d0c11f14e23c67a0ca39
2011-04-15 13:57:21 +09:00
satok
68f1b78b7b Add an API to get the last used input method subtype
Bug: 4075039

- Voice input requires to know the last used input method subtype.

Change-Id: I603a4fb88a2af5195e52188adfa6585ad80304fa
2011-04-15 13:49:33 +09:00
Joe Onorato
43a17654cf Remove the deprecated things from Config.java. These haven't been working since before 1.0.
Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
2011-04-07 19:23:05 -07:00
Jeff Brown
4e91a180be 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
2011-04-07 13:11:16 -07:00
Jeff Brown
5487500cf3 Minor Alt-TAB / Recent Apps Dialog improvements.
Alt-TAB should have different semantics from the APP_SWITCH key
or long-press on HOME.  Accordingly, remove the fallback action
for Alt-TAB and initiate the task switching behavior directly
in the policy.

Modified RecentApplicationsDialog to be more precise about the
initial modifiers that it considers to be holding the dialog.

The dialog is now dismissed by a second press on the APP_SWITCH
key or by a second long press on HOME.

Change-Id: Idf4d803f51103819057cb655ff3b770b7729e4be
2011-04-06 15:38:05 -07:00
Jeff Brown
21bc5c917d Add a little input event consistency verifier.
The idea is to assist with debugging by identifying cases in which
the input event stream is corrupted.

Change-Id: I0a00e52bbe2716be1b3dfc7c02a754492d8e7f1f
2011-03-31 19:57:00 -07:00
Jeff Brown
0029c66203 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
2011-03-30 16:55:15 -07:00
Christopher Tate
3d4bf17f49 Add view/drawable states for drag-accepting / drag-hovered
Added new drag_can_accept and drag_hovered XML attributes and the View
logic to support them.  Drawable states are now refreshed automatically
when a drag starts/ends and when a drag crosses the boundary of a
participating view.

Change-Id: I25f8ee02c83b3fa4f27201997d7eabf4be653fd8
2011-03-29 15:27:58 -07:00
satok
e3797a15fb Removed APIs for setCorrectionSpan from InputConnection
("setCorrectionSpan" was added in Id3abc9ea4d11753cd )

Also..
- Added a class java doc for CorrectionSpan
- Removed FLAG_DEFAULT
- Changed the return type of getSuggestions from Array<CharSequence> to String[]

Change-Id: If5eb091e307a7a40c5b4a70ec1fe6059ecd9fb2d
2011-03-26 07:20:34 +09:00
satok
c50232d517 Add hashCode to InputMethodInfo
The uniqueness of InputMethodInfo was guaranteed by mId (like InputMethodInfo#equals), but the hashCode was not implemented in the same way.
This change fixes a problem happening when the user gets the hashCode of InputMethodInfo obtained through IPC.

Change-Id: Ib876c5cb0d778481100597ec31202f94fb7b8f37
2011-03-26 06:12:58 +09:00
Jeff Brown
dff626c56a Merge "Added a hovered state for drawables." 2011-03-24 16:42:08 -07:00
PY Laligand
c33d8d49e4 Added a hovered state for drawables.
Change-Id: I2b12c8593e04e37c8eb748946ca6d4d7a61de36a
2011-03-24 16:14:08 -07:00
Romain Guy
ad575f4dda Merge "When deleting a path, remove it from the path cache. Bug #4170585" 2011-03-24 16:05:13 -07:00
Romain Guy
1af23a32d8 When deleting a path, remove it from the path cache.
Bug #4170585

Change-Id: I6be4d251ceb908c89afe49c2ff85c05f36c73b70
2011-03-24 16:03:55 -07:00
Michael Jurka
9c78930046 Merge "Fixing invalidate problems in software rendered mode" 2011-03-24 16:00:50 -07:00
Michael Jurka
d0872bd38a Fixing invalidate problems in software rendered mode 2011-03-24 15:45:27 -07:00
Jeff Brown
b7c25ce3ae Merge "Add MotionEvent.HOVER_ENTER and HOVER_EXIT." 2011-03-24 15:38:04 -07:00
Jeff Brown
a032cc0086 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
2011-03-24 15:37:04 -07:00
Romain Guy
c5a43a249b Avoid NPE in postInvalidate().
Bug #4048131

Change-Id: I020400fc97015240924461674ca7bf8077059152
2011-03-24 13:28:56 -07:00
Romain Guy
13f35f3ce6 Correctly check bottom padding in setPadding().
Change-Id: Ie8099d37ad865acc559c4a4d34eb84960a1a19f3
2011-03-24 12:03:17 -07:00
Romain Guy
aaceeb0c5b Use the correct API to query system properties.
Change-Id: Ie120dee0e24959d4db3fdb0100b6d8fe7fe46cdb
2011-03-23 19:56:13 -07:00
Romain Guy
56215274f2 Apply color filters to bitmaps.
Change-Id: I36354a6a2d330b2e61ed2af12b6701b151880288
2011-03-23 16:55:38 -07:00
Romain Guy
566c33105a Remove unnecessary test.
Change-Id: I7cb797f4be70ecd40a65c51e92a8e8722e49dec2
2011-03-21 18:21:28 -07:00
Romain Guy
43e7aeb37e Merge "Add support for drawPoint() and drawPoints()." 2011-03-21 13:12:28 -07:00
Romain Guy
ed6fcb034b Add support for drawPoint() and drawPoints().
Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
2011-03-21 13:11:49 -07:00
Svetoslav Ganov
a3d17a753d Merge "Text in accessibility events not consistent" 2011-03-18 17:16:14 -07:00
Svetoslav Ganov
c0a8cd10a5 Text in accessibility events not consistent
bug:2513822

Text added to accessibility events is truncated to max
length. However, the fromIndex and toIndex properties
are relative to the text before being truncated, thus
potentially our of bound. Removed the max length
limitation because test very rarely is longer that
500 characters and in the cases in which text is longer
than 500 character it will not be a real problem to
pass a bit more data through an IPC (very rarely).

Change-Id: Ie70ac630dfeb56d4f59079abb2f46d07582796b6
2011-03-18 17:13:59 -07:00
Romain Guy
a168d73721 Correctly apply filters to Alpha8 bitmaps.
This change also removes unnecessary operations from display lists.

Change-Id: I627f85861982731f0ee7705b48b36d9c56f22f39
2011-03-18 16:50:13 -07:00
Adam Powell
7270f62c1f am 9cd93f09: am ea775ca3: am f8d1533b: Merge "Fix bug 4111271 and bug 4077526 - WebView touch event handling when WebCore is too slow" into honeycomb-mr1
* commit '9cd93f09d451afacb8fffeee5e71806e0f91cf31':
  Fix bug 4111271 and bug 4077526 - WebView touch event handling when WebCore is too slow
2011-03-17 01:41:30 -07:00
Adam Powell
ea775ca3ac am f8d1533b: Merge "Fix bug 4111271 and bug 4077526 - WebView touch event handling when WebCore is too slow" into honeycomb-mr1
* commit 'f8d1533b07b51935e295b2cf92e2ea2aa94b303f':
  Fix bug 4111271 and bug 4077526 - WebView touch event handling when WebCore is too slow
2011-03-17 01:38:15 -07:00
Adam Powell
d0197f3669 Fix bug 4111271 and bug 4077526 - WebView touch event handling when
WebCore is too slow

Make sure that we can recover properly from a bad gesture with missing
events that never come back from webcore. Lower timeout to 1 second.

Confirm movement on touch event enqueue so that we don't get phantom
taps or long presses when webcore is slow to respond.

Add sanity check in ScaleGestureDetector to end a gesture early on a
bad MotionEvent stream rather than throwing up.

Change-Id: I69690409d7edd6b4320dbcf3b052aba4023360fe
2011-03-17 01:32:17 -07:00
Jeff Brown
5949f89f3c Merge "Add 3D mode key and others." 2011-03-16 11:46:00 -07:00
Jeff Brown
9812aed276 Add 3D mode key and others.
Related to an AOSP change request.

Change-Id: I3f4f84b56a1af626a8783f5ecbb823eb12ba9fbe
2011-03-16 11:31:42 -07:00
Svetoslav Ganov
4ad45c4d15 Merge "Pressed state not cleared if view is disabled in long click handler" 2011-03-16 11:13:41 -07:00
satok
35267f178c Merge "Add CorrectionSpan and APIs to pass a secure CorrectionSpan to TextView" 2011-03-15 23:13:56 -07:00
satok
adb435835f Add CorrectionSpan and APIs to pass a secure CorrectionSpan to TextView
- CorrectionSpan is a span which has suggestions made by IME.
This has a function to change the current IME to other IME specified
in this span. For security reasons, only the current IME
is allowed to use this function through InputConnection.
(IME token is used for checking the validity of it.).

- CorrectionSpan stores following information:

flags, subtype Id, InputMethodInfo Id, suggests, locale, original string

Change-Id: Id3abc9ea4d11753cdc4f483a2bb3128f49ba198a
2011-03-16 14:44:37 +09:00
Svetoslav Ganov
77b80c06af Pressed state not cleared if view is disabled in long click handler
bug:2133127

If a View is disabled its onTouchEvent handler uses a shortcut
path for efficient handling which does not clear the pressed
flag. As a result if the view is disabled in a long click
handler the view keeps being in pressed state. The fix is to
clear if needed the pressed flag in the shortcut path
of onTouchEvent.

Change-Id: I046a62c2fce751c27fec3cfb756b74431fc003c3
2011-03-15 20:53:10 -07:00
Jeff Brown
843e29d375 Merge "Improve VelocityTracker numerical stability." 2011-03-15 20:01:16 -07:00
Jeff Brown
2ed2462aa2 Improve VelocityTracker numerical stability.
Replaced VelocityTracker with a faster and more accurate
native implementation.  This avoids the duplicate maintenance
overhead of having two implementations.

The new algorithm requires that the sample duration be at least
10ms in order to contribute to the velocity calculation.  This
ensures that the velocity is not severely overestimated when
samples arrive in bursts.

The new algorithm computes the exponentially weighted moving
average using weights based on the relative duration of successive
sample periods.

The new algorithm is also more careful about how it handles
individual pointers going down or up and their effects on the
collected movement traces.  The intent is to preserve the last
known velocity of pointers as they go up while also ensuring
that other motion samples do not count twice in that case.

Bug: 4086785
Change-Id: I2632321232c64d6b8faacdb929e33f60e64dcdd3
2011-03-15 19:59:47 -07:00
Brad Fitzpatrick
aaae0573bb am 403da3a7: am 8d25eab1: Merge "Releasing lock even if exception is thrown."
* commit '403da3a79af78920b33448bbc8d91c4b8aebf4a4':
  Releasing lock even if exception is thrown.
2011-03-15 12:05:40 -07:00
Brad Fitzpatrick
8d25eab105 Merge "Releasing lock even if exception is thrown." 2011-03-15 11:23:44 -07:00
Brad Fitzpatrick
8b5345fb36 Merge "Fixing self-assignment in copying code." 2011-03-15 11:18:18 -07:00