Commit Graph

2779 Commits

Author SHA1 Message Date
Svetoslav Ganov
2f87014ea2 Merge "Enabling accessibility focus only if explore by touch is on." into jb-dev 2012-04-30 12:41:15 -07:00
Svetoslav Ganov
0e8fd5eddb Merge "Populating accessibility node info with supported actions." into jb-dev 2012-04-30 12:40:49 -07:00
Svetoslav Ganov
10890607f8 Merge "Fixing crash in ViewGroup.dispatchPopulateAccessibilityEvent" into jb-dev 2012-04-30 12:39:25 -07:00
Svetoslav Ganov
18dcf2f1cd Merge "Fixing crash when drawing accessibility focus indicator." into jb-dev 2012-04-30 12:38:06 -07:00
Svetoslav Ganov
07b726c86b Enabling accessibility focus only if explore by touch is on.
1. Now we will enable the accessibility focus only if Explore by
   Touch is enabled. Enabling this feature allows a blind user to
   touch the screen and set the accessibility focus at this
   location as well as get spoken feedback. Also an accessibility
   service can move the accessibility as a result of user gestures
   detected only if Explore by Touch is enabled. Since we will
   handle some gestures by default if not accessibility service
   does so to provide reasonable built-in navigation of the UI
   by "objects" we need the accessibility focus functionality.

bug:6383361

Change-Id: I13ce6072a90f5838c7656379788144c99a772bf0
2012-04-30 12:25:31 -07:00
Svetoslav Ganov
cfcff98ab3 Populating accessibility node info with supported actions.
1. The system does not allow performing an accessibility action
   on an accessibility node info unless it explicitly states it
   supports that action. Adding the new accessibility actions
   to the info emitted by a view.

bug:6407647

Change-Id: I8dad1dc60ec68b4da5ed2349a1366a88820175a1
2012-04-28 15:31:15 -07:00
Svetoslav Ganov
d7910dd42a Fixing crash in ViewGroup.dispatchPopulateAccessibilityEvent
1. There was a double call to recycle of a pooled instance
   which was causing an exception. Removed an unnecessary call.

bug:6408689

Change-Id: Ic74b743c6be28ca95ab84b15f28edb5bc95f0a88
2012-04-28 15:23:51 -07:00
Svetoslav Ganov
1d74df2266 Fixing crash when drawing accessibility focus indicator.
1. Added a lacking null check for the accessibility node
   info returned by an accessibility node provider. If
   the provider implementation is not correct this may
   happen.

2. Added clearing of the current accessibility focused
   node when the window focus changes. Now it is cleared
   in every case and if it happens that accessibility is
   enabled when the window gets focus, the accessibility
   focus will be properly set.

bug:6381296

Change-Id: Ieea1b07762745e6d932fc4ed4febfe77760b25b7
2012-04-28 15:14:30 -07:00
Dianne Hackborn
79c6346100 Merge "When a window is first shown only draw once while animating." into jb-dev 2012-04-27 17:42:48 -07:00
Jeff Brown
ffd6ea4523 Merge "Resample touch events on frame boundaries." into jb-dev 2012-04-27 17:31:50 -07:00
Philip Milne
65340c1682 Merge "Fixes for optical bounds feature." into jb-dev 2012-04-27 16:57:41 -07:00
Philip Milne
7a23b49a8c Fixes for optical bounds feature.
1. Make the feature opt-in (ViewGroup::layoutMode defaults to CLIP_BOUNDS) without inheritance.
2. Rename COMPONENT_BOUNDS to CLIP_BOUNDS.
3. Rename LAYOUT_BOUNDS to OPTICAL_BOUNDS.
4. Complete GridLayout implementation.
5. Change the default_gap between components to 8dp, to align with the Style Guide.

Change-Id: I8d40dfc5f4ca469f6424eb3ff60d07bec56e3a9f
2012-04-27 16:46:57 -07:00
Jeff Brown
f613da0e5f Merge "Simplify the consume before traversal heuristic." into jb-dev 2012-04-27 16:45:00 -07:00
Jeff Sharkey
5c55c40be0 Merge "Clear IMM references when window dismissed." into jb-dev 2012-04-27 16:44:22 -07:00
Jeff Brown
e19d5f0272 Merge "Use choreographer frame time to schedule animations." into jb-dev 2012-04-27 16:44:18 -07:00
Jeff Sharkey
4478de3c02 Clear IMM references when window dismissed.
Match behavior of removeViewLocked(), where InputMethodManager clears
any strong references to Views, and also clear mCurRootView. Without
this, IMM can leak a DecorView instance after the user has left the
application.

Bug: 6413553
Change-Id: Iad09cf5dbb7f6f156fd39ed243431432e00f8945
2012-04-27 16:17:43 -07:00
Romain Guy
5084e69b2c Merge "Make debug.layout usable with hw acceleration on" into jb-dev 2012-04-27 16:15:28 -07:00
Romain Guy
cbc6774ef0 Make debug.layout usable with hw acceleration on
Change-Id: I35e41f83fc5049f5ede6b8a6731800bd6da50391
2012-04-27 16:14:23 -07:00
Jeff Brown
771526c88f Resample touch events on frame boundaries.
Bug: 6375101
Change-Id: I8774e366306bb2b6b4e42b913525bf25b0380ec3
2012-04-27 15:58:42 -07:00
Romain Guy
c887843b19 Merge "New constant used by dev settings" into jb-dev 2012-04-27 15:49:59 -07:00
Romain Guy
4b8c4f886b New constant used by dev settings
Change-Id: I42f103ae8a9b9f051367c72131f0b216e200f6e0
2012-04-27 15:48:35 -07:00
Dianne Hackborn
12d3a94397 When a window is first shown only draw once while animating.
On some hardware allocating a new graphics buffer is quite
expensive, which blocks updates to the UI.  This can cause
glitches when performing window animations.

To reduce these glitches, the view hierarchy will now only
allow itself to be drawn once if its window is being shown
while the window manager is animating, not resuming draws
until it is told that the animation is done.

Change-Id: Ie15192f6fddbd0931b022a72c76ddd55ca266d84
2012-04-27 15:21:44 -07:00
Jeff Brown
330314c6fb Simplify the consume before traversal heuristic.
Calling doConsumeBatchedInput() from doTraversals() can result
in redundant attempts to consume batched input.  Instead of making
this call directly, just schedule consume batched input at the
same time as traversals are scheduled.  This should have the same
overall effect.

Bug: 6375101
Change-Id: Ie5799e6a68fedbd1978cca6d03852d9a7f1b1f64
2012-04-27 02:20:22 -07:00
Jeff Brown
20c4f87b29 Use choreographer frame time to schedule animations.
Instead of using the current uptime millis, which can exhibit
substantial jitter depending on when the code runs, use the
current frame's vsync time when performing animations.  The frame
time provides a more consistent pulse.

Bug: 6375101
Change-Id: Icf307cd8524246607db7496c6fef9a5eeb7c0439
2012-04-26 20:12:43 -07:00
Jeff Brown
97d5c41873 Remove unused pipelining optimization.
Bug: 6375101
Change-Id: I5fcbbabfafae9e1661adac7b2becc748e42c4b66
2012-04-26 15:50:31 -07:00
Jeff Brown
69b2be163d Add yet more keyboard layouts.
Bug: 6110399
Change-Id: I8e2ce1cd350dddb006df51286e127dce65a8117f
2012-04-25 18:17:21 -07:00
Philip Milne
8f94ec1565 Merge "Fix for layout debug mode." 2012-04-24 19:42:25 -07:00
Philip Milne
604f440dfd Fix for layout debug mode.
Change-Id: I0d02aa4cf7e18c2bbb01a3296e573f2f9de60bf1
2012-04-24 19:32:31 -07:00
Svetoslav Ganov
9ca10c8c3c Merge "Adding explicit text traversal granularities and actions for web navigation." 2012-04-24 19:27:13 -07:00
Svetoslav Ganov
b7ff3255c6 Adding explicit text traversal granularities and actions for web navigation.
1. The granularities for traversing the text content of an accessibility
   node info are now predefined constants and custom ones will not be
   supported. This is the simplest solution - we can always add namespaced
   user defined ones (unlikely).

2. Added actions for traversing web content. These actions can be used by
   an accessibility service to transparently drive the JavaScript based
   screen reader that is used for handling web content.

3. Added a new accessibility event type for traversing the content of a
   view. This event is needed to announce to the user what is the next
   element, i.e. the one next to the cursor, after the view's text was
   traversed.

bug:5932640
bug:6389591

Change-Id: I144647da55bc4005c64f89865ef333af8359e145
2012-04-24 18:49:15 -07:00
Jim Miller
e4cd3b0d95 Merge "Fix 6299832: Add search target swipe action to navigation bar on phones" 2012-04-24 18:32:37 -07:00
Jim Miller
e898ac59db Fix 6299832: Add search target swipe action to navigation bar on phones
This adds a feature to swipe upward on the navigation bar to invoke
voice search on phones.

Change-Id: I462076fd43b1c66c5bf624f00b297c6d3414a19a
2012-04-24 17:25:46 -07:00
Mathias Agopian
80193e7748 Merge "add a (hidden) api on Surface to query if the consumer is running behind the producer" 2012-04-24 17:24:07 -07:00
Svetoslav Ganov
0430ce9085 Merge "Removing hierarchical accessibility focus directions." 2012-04-24 16:08:05 -07:00
Mathias Agopian
c14bacf1fb add a (hidden) api on Surface to query if the consumer is running behind the producer
Change-Id: I71ec1602f66a4850b130893fc7017b5b1ac1b647
2012-04-24 15:50:27 -07:00
Philip Milne
b2b15716d8 Merge "Promote layout debugging code from GridLayout to ViewGroup." 2012-04-24 11:36:54 -07:00
Gilles Debunne
0b7d747e90 Merge "Editor uses a SpanWatcher to track EasyEditSpans" 2012-04-24 11:27:32 -07:00
Svetoslav Ganov
76f287e416 Removing hierarchical accessibility focus directions.
1. The accessibility focus directions are not needed since an
   accessibility service just get the root, first child, next
   sibling, previous sibling and call execute the action to
   give it accessibility focus. Now the accessibility node
   info tree is properly ordered taking into account layout
   manager directions for both layout manager that we report
   and ones that we have determined as not important for
   accessibility. Also the position of a node info are ordered
   properly based on their coordinates after all transformations
   as opposed to child index.

bug:5932640

Change-Id: I994a8297cb1e57c829ecbac73a937c2bcbe0bac7
2012-04-23 20:48:24 -07:00
Romain Guy
ba6be8a62d Prevent WebView from crashing when detached from the window
Bug #6365056

WebView enqueues a functor in the hardware renderer to handle
animations and this functor is called at a later time by the
hardware renderer. However, the functor was not removed from
the queue when WebView was removed from the window. This could
cause the hardware renderer to attempt to execute an invalid
functor and lead to a crash.

Change-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508
2012-04-23 20:29:31 -07:00
Gilles Debunne
c62589cbec Editor uses a SpanWatcher to track EasyEditSpans
Will also fix Bug 6344997

The previous TextWatcher mechanism was inneficient. It require an
expensive getSpans() call to retrieve all the spans and then search
for the one we're interested in in case it has been changed.

The SpanWatcher is faster, it will broadcast the add/changed/removed
events we're interested in.

Now that we can rely on SpanWatcher, use it to directly track
addition and removals of EasyEditSpans.

No unit test for this feature which require an integration with
the voice IME. Easy to test manually though.

Change-Id: Idabcacc48c479bf9868d5204c0b0ca709207ede2
2012-04-23 18:25:25 -07:00
Philip Milne
10ca24a97c Promote layout debugging code from GridLayout to ViewGroup.
Layout debugging code draws rectangles around:

1. Layout insets (red)
2. Bounds (blue)
3. Margins (magenta)

Layout debug mode is enabled with:

adb shell setprop debug.layout true

Change-Id: Ia155a2d0fbf33693a1e3c040f627ea3a534e1aff
2012-04-23 16:41:04 -07:00
Romain Guy
19f86e831e Invoke onTrimMemory with an EGL context
Bug #6369600

Change-Id: I3ded47c3688ef2f2873495392c35e898357204da
2012-04-23 15:19:07 -07:00
Chet Haase
1271e2cc80 Remove USE_DISPLAY_LIST_PROPERTIES flag
This flag was still hanging around pending any need to disable
DisplayList properties. But things seem stable, so it's time to clean up
and simplify the code.

At the same time, I reduced redundance in DisplayList dimensions. We
used to call drawDisplayList() with width/height parameters that were
used to do a clip reject. This is redundant with the DisplayList properties
that set the bounds of the DisplayList; the left/right and top/bottom properties
represent the same width/height properties formerly used in drawDisplayList().
The new approach is to not pass dimensions to drawDisplayList(), but to
instead pull those dimensions directly from the DisplayList when needed.

Change-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56
2012-04-23 11:13:17 -07:00
Jeff Brown
7838025812 Merge "Make InputEvent.getEventTime() public." 2012-04-20 20:16:25 -07:00
Jeff Brown
b11499d2db Make InputEvent.getEventTime() public.
Also add new methods to access the event timestamp in
nanoseconds.  Hidden for now but useful for prototyping.

Bug: 6374616
Change-Id: I7030734a908e8e31a17a356debc269db7c0f0783
2012-04-20 20:11:19 -07:00
Svetoslav Ganov
d6e716dce9 Adding a couple of missing accessibility focus directions.
Change-Id: Id404155591cf3fe5f9bef3ed8fe0d03908944ce1
2012-04-20 18:40:21 -07:00
Svetoslav Ganov
122b2c32de Fixing a couple of issues I have introduces in the last patch.
1. Fix waiting for the wrong instance.

2. Fix cloning of accessibility node info.

Change-Id: Icabf0d4bc947602a32fddc6642cc787f2bc766e4
2012-04-20 17:04:23 -07:00
Svetoslav Ganov
72de206248 Merge "Adding support for traversing the content of a node info at granularity." 2012-04-20 15:26:24 -07:00
Svetoslav Ganov
aa780c1109 Adding support for traversing the content of a node info at granularity.
1. A view that creates an accessibility node info may add to the info
   a list of granularity labels. These are granularities by which the
   source view can iterate over its content. For example a text view
   may support character, word link while a web view may additionally
   support buttons, tables, etc. There are actions on accessibility
   node info to go to the next/previous at a given granularity which
   is passesed as an argument.

2. Added Bundle argument to the APIs for performing accessibility
   actions. This is generic and extensible.

bug:5932640

Change-Id: I328cbbb4cddfdee082ab2a8b7ff1bd7477d8d6f9
2012-04-20 15:12:13 -07:00
John Reck
d6b1098e1f Support fallback action if unhandled key event
Bug: 6023055

Change-Id: Ib802c4b9d1b606f9ea7a5081e30c50b5bd78e30c
2012-04-20 10:23:24 -07:00