An app was requesting smooth scrolling to a view position beyond the
number of items in the list. This caused our setup logic to execute on
every frame, waiting for the target view to be added.
This fix clamps the requested target position to the number of items
actually in the list.
Issue #6572175 Messaging: Sometimes conversation doesn't scroll when focus is brought to the compose field
Change-Id: I23707aeb213e67af4297713a03c2f5b446c8e2b6
This change is analogous to Ic0e9f1bbd8cae9fdd3a6d1d015bb9224c8be545c
in WebView, and depends upon the same Skia change that that CL makes
use of.
This flips the "fake bold" flag on for bold fonts in
TextView.setTypeface(), with the expectation that Skia will ignore
the flag if the final typeface used to render the glyphs is already
bold. It also does the same for StyleSpans, TextAppearanceSpans,
TypefaceSpans, and the Switch widget.
With this, fake bold should work uniformly across all scripts - if
fake bold works for a primary typeface, it should also work for all
fallback typefaces.
Bug: 6629786
Change-Id: Id3b8639ab0df83052ffd82809cb12adaacc1d46b
Bug 6550358
The EditText constructor now calls setTextIsSelectable, which uses
getText where the cast exception happens because the EditText is not
yet fully built and its text does not have the right type.
Fixed by using mText directly instead of getText().
Change-Id: I52a2720ae99475881f210ac74464728cab92147e
Guard against cases where ListView might receive touch events while
detached.
Update ListMenuPresenter to dispatch a data set change when the
backing menu is changed.
Bug 6543282
Change-Id: If2fb9b6aa3cf4a1b7070a7cd0de0edf0fc2f4cca
Okay this isn't entirely docs. I have un-hidden the new permission
for binding to accessibility services; we were going to go out with
it hidden since it didn't go into factory ROM, but now that we are
doing other things we might as well expose it.
Also changed a log from E to W, since it is not an error.
Change-Id: I9226c95e3b63e12218fe41dc3f4290d9824a9e5c
1. One of the loops was using the last visible position
as its end boundary as opposed to the child count
minus one.
bug:6610451
Change-Id: I600545ca3f64d1e982f909f893e5d34570ec5c8b
1. The focus search algorithm considers only visible
views, specifically when adding focusables. Since
AbsListView implements a custom focus search strategy
for better user experience it also has to return
only views that are visible.
bug:6543878
Change-Id: I6207c29402e4ac6190c1e65d042e04449aa75ef8
1. The clearFocus routine in ViewGroup was clearing the pointer
to the descendant which has focus after calling clear focus
on that child. However, currently clearing the focus of a view
causes the view that loses focus to try to give the focus to
the first focusable which potentially sets the pointer to the
child that has input focus in the ViewGroup but the ViewGruop
essentially clears that pointer. This resulted in having two
focused views at the same time in some cases.
2. AbsListView was not calling the super implementation of add
focusables if the focus type was not accessibility.
bug:6559819
Change-Id: I478dfed000b5de3f9b15e12eb82aa3d34c2301e4
1. Since we added explicit accessibility focusable attribute when
adding focusables views that do so should call this method. Some
views were not updated to do so.
bug:6581924
Change-Id: Id64c0b2d76e5269ebf3fbe17203e73b174bdb843
1. Now the list traversal forward is the exact opposite
of the traversal backward.
2. The focus search starts from the view against which
the call is made as opposed to the one that has focus.
This is now consistent with the rest of the focus search.
bug:6537747
Change-Id: Ida6a696636a3099531155fcbff256f71264f5008
1. Iterators were skipping content on reversing direction.
2. The cursor was positioned at the beginning of the next text segment
when moving forward and at end of the previous text segment when moving
backwards. This is incorrect and now the cursor is positioned at the
end of the segment when moving forward and at the beginning when moving
backward.
3. The cursor position was not properly set when reaching the end/start
of the text.
4. The iterators were reporting strictly the next/previous segment even
if the cursor is within such a segment. Thus, when traversing some
content may be skipped. Now moving forward moves the selection to
the next segment end and the start position is either the old index
if it was within a segment or the start of the segment. Same in
reverse.
bug:6575099
Change-Id: Ib48a649cec53910339baf831a75e26440be6e576
Bug 6476578
The latest bug report show a query.length() of 33 while
mQueryTextView.length() is 0 on line 514.
I can see 2 reasons which can explain this discrepancy:
- the mQueryTextView has a filter, which alters the text.
- some asynchronous event (IME?) changes the text in the mean time.
I would favor the second one, which seems to break a lot of single
thread assumptions in the code and generates other IOOB exceptions.
Note that depending on what they are used for, it may be more consistent
to use mQueryTextView.getText() instead of query in the following
assignment.
Change-Id: Ie8a5486b11a80543f8f90980454933c5a74c073e