When a ListView with a FastScroller is located in a scrolling
container, defer the start of the drag operation for a short time or
until a touch slop is crossed. This allows these lists to be placed in
containers like ViewPagers without immediately stealing touch events.
Change-Id: I9b10b6993b24113c5e95c485bf57206747c73a84
Explicitly invalidate the seek bar thumb area when we change drawable
states for touch down. This prevents the thumb from only being
half-invalidated at the edges since it extends into the view's padding
region.
Change-Id: Icc4e608aca044b2d05f3a9378eced839c03947e6
Cherry picking since branching caught us in the middle of review.
1. If an AdapterView has no adapter and the view tries to fire an
accessibility event we get a null pointer exception.
bug:5439321
Change-Id: Ia3d7a5ad852ef42422d10d8a62c4d3af6792313b
The cached mText field from TextView is not constant overtime.
It is especially changed whne the first character of text is added.
Retrieve the actual current value everytime we use it.
Change-Id: Ie297a3292106879621e54a22e5d03444d442ec96
Make the new marshalling/unmarshalling code for the long sparse
array of ints always consistent.
And sane.
Change-Id: Ifbfbe6e56f59e469acb66257c504b1168d6566fa
Removed unnecessary CharSequenceIterator and made the WordIterator
work on String instead of CharSequence
Submit words to the spell checker by batches.
Refactored WordIterator to make it intrinsically local.
Change-Id: Ie9e30691985a130fa55cd052005ddb22a21761cb
ListView tracks check states in two ways, by position and by ID if an
adapter reports stable IDs. After a data set change there was no
guarantee that the position checked mapping was consistent.
Fix up the position mapping from the ID mapping after a data set
change. In the future this should happen by asking the adapter where a
given ID is now located, but this will require new API and not all
adapters in the wild will implement it. For now make a best guess by
searching in a limited window around the item's last known position.
Change-Id: I70ba89eb103c438b0410c3c6d066acc3918459f9
1. ScrollView/HorizontalScroll view were reporting only the scroll X and Y but
failed to convey the max scroll along X and Y so the position can be determined.
2. WebView was not reporting correctly its scroll position for accessibility.
3. Some descendants of AdapterView were reporting incorrect position information.
4. Updated the accessibility docs with some details about the scroll information.
5. Cleaned up duplicated code.
bug:5412132
bug:5412265
Change-Id: I165e73ecde027dad811425b9f395a3f758c923ba
When the word iterator return an empty range, select an arbitrary
character so that cut/copy icons are available.
Change-Id: I16e5a3c7f10886db967d870706da7f2d690af013
A bug was introduced in a recent refactoring: correct words didn't have their
SpellCheckSpan removed, leaving a lot of useless spans.
SPAN_EXCLUSIVE_EXCLUSIVE should never have a 0-length. With Japanese characters
wordStart could be equal to wordEnd when parsing the text: skip these.
Using toString().substring(...) instead of subSequence(...).toString() which
is more efficient.
Change-Id: I670870a34565939b676400091f4852152a7f7124
1. The user can touch the screen at an arbitrary location potentially crossing the root namespace
bounday which will send an accessibility event to accessibility services and they should be able
to obtain the event source. Also accessibility ids are guaranteed to be unique in the window.
Added a package scoped findViewByAccessibilityId method that dives into nested root namespaces.
2. Added accessibility support to the AnalogClock.
bug:5405934
Change-Id: I84edcb554bae41aafcbbc2723c5e62c1ef8a6ddf
Added content description to the overflow button and default
action target as well as content description for the popup
list with share targets.
bug:5398787
Change-Id: Iea1e9d85893899f7d161986cb958595083c79b93
1. Some accessibility evenents should not and were not dispatched for
text population but there was no centralized location for enforcing
this - rather the system was firing them in a specific way or there
were conditions in a few places enforcing that. Now this is centralized
and clean.
2. Updated the documentation with some new event types the were lacking.
3. Explicitly stated in the documentaition which events are dispatched to
the sub-tree of the source for text populatation.
bug:5394527
Change-Id: I86e383807d777019ac98b970c7d9d02a2f7afac6
Two separate issues here:
- The results of the spell checker may be identical to the one set by the IME. Since
we merge the spans, the entries are duplicated. Filter spell checker results to avoid
these duplicates.
- When the text is saved on rotation, the spans are saved and restored. Since we start
a new spell check when the window is attached, it also doubles the size.
Change-Id: I21e1a5ae1b264bc97f44d762e4589bf520c6c19c
1. The cooser was presenting the "Show all" option if the number
of available activities was more than the initial max count of activities
to be shown. Since the show all option is added to the drop down
the latter becomes effectively one longer than the initial max activity
count which may make the drop down taller than client expectats. Also
this leads to the case where if the activities are one more than the
initial activity count pressing the show all button will just replace
the show all item with the activity that did not fit - this is somehow
annoying to the user.
bug:5379282
Change-Id: I2693214cb0b66edb2a3bdffc01ed29139341111c