1. The new actions were not added to this helper method so it was
throwing an InvalidArgumentException.
bug:6421059
Change-Id: I132348a50bb900ee19b95cc92c26ce47609ccb1c
1. Removed a change in the input focus behavior I forgot
to take out when submitted the main accessibility focus
patch. Ugh..
bug:6320098
Change-Id: Id7942e8aac64ba4bf6df7e19f733fa70b368d1bb
This change makes TextureView skip calling the onSurfaceTextureAvailable
callback when setSurfaceTexture is used to change the TextureView's
SurfaceTexture.
Change-Id: Ie08f72f157c3bfce3215076b21994026ef66d88d
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
This will be used to determine which parts of a window a completely
hidden by system UI elements (status bar, nav bar, system bar) so
that they can be clipped out from rendering.
Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
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
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
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
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
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
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
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
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
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
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
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
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