getCheckedItemPositions()'s documentation previously mentioned the
returned SparseBooleanArray was only containing checked item positions
(i.e. get(int position) always returning true). In practice, this is
wrong, because getCheckedItemPositions() returns mCheckStates which
basically contains all key-value mappings that have been used. As a
consequence if the item at position p is checked and unchecked, the
returned SparseBooleanArray will contain a (p, false) mapping.
Another option could be to delete all keys having a false value.
Change-Id: I15f8fc2a1ba3f1501af126c272b827402cfd8b14
* commit '34bc73dff1f0c8402da3fc9bd1f0175bddcaa842':
Revert "Make implementation of isEmpty consistent with implementation of getCount in HeaderListViewAdapter"
Bug #8725945
Selecting text in an EditText causes the View to have transient
state. This would in turn cause the View to be removed from its
ListView parent. When removed, the EditText would lose its
AttachInfo, causing all sorts of problems. Headers and footers
must not be removed, only detached. This is the part of the fix
in AbsListView.
Fixing AbsListView triggered a second bug: when a View is removed
from the Window manager, it would keep its parent assigned, thus
making it impossible to add it again to the window manager. When
a ViewRootImpl goes through doDie(), it must set its content view's
parent to null to properly cleanup.
Change-Id: I0489daa74f8f7fcf85526f0928f8925ec30d4f42
The calendar view was updating its header only if the focused
month changes. Removed the check whether the displayed month
changed before setting it since the setter is carefully called
only in cases when there is a change. Hence, now if the year
or the month change, we update the header. This is the safest
and least intrusive fix.
bug:9167305
Change-Id: I98200bb57580f6416abd30c6c25454d4474add64
The node bounds populated by the child TextView were not consistent
with the bounds manually populated for its parent NumberPicker.
Bug: 9072003
Change-Id: Icbfa64f52cf11fd39c7243936227b8ba36280c3c
We are prefetching accessibility node infos to minimize the number of IPC
calls when an accessibility service introspects the screen. It is however,
possible that the view we are prefetching is a child of an AbsListView whose
adapter changed its data but the AbsListView still did not perform a layout
pass to sync its children with the new adapter state. This may lead to an
exeption when trying to query for the state of a child's position. If the
data of the adapter is changed and the layout pass still not performed,
we return null for the AbsLIstView's children. When the layout pass
completes we already notify the accessibliity layer so it will be able to
refetch the children of the AbsListView.
bug:8433433
Change-Id: I56313c721aef3848b15fad50027d068ba1d291f7
- add missing assignment for text direction (mTextDir)
- when layout direction change, update text direction (mTextDir again)
Change-Id: Id600fb0c5897a0d2ee5f9fe18a63437dc3e528d9
We added APIs to allow an accessibility service to extend the
selection while moving the cursor at a given granularity such
as word, character, etc. The problem is that the traversal was
extending only the end of the selection while moving forward
and the start of the selection while moving backward. This leads
to a case in which the user cannot shrink/extend the selection
because for example instead of shrinking the end of the selection
the implementation was extending the start.
Now extending the selection moves only the selection end. This is
the same behavior as text view using a keyboard.
Tests: https://googleplex-android-review.googlesource.com/#/c/307062
bug:8839844
Change-Id: Id6965b102647df909f61301fcc8ec05458dd5881
This lets apps get the audio session id of the video being played, so
they can apply effects to the audio track.
b/8767565
Change-Id: Iaa39d97d0b6fb528ed04b52d579afa58444ebcfe
AbsListView is backed by an adapter. After the adapter data changes
the view sets a flag that its state is dirty and requests a layout.
If an accessibility service asks for the state of a list item at
this point, it may incur an error since the views and the adapter
are not in sync.
Now if an accessibility service queries for a list item when the
data set is changed and the item views are dirty, we pretend the
children do not exist. After the layout happens, we notify the
accessibility layer that the screen content changed so it can
refetch the views if desired (this notification mechanism is
already in place in AbsListView#handleDataChanged()).
bug:8433433
Change-Id: I4287a0ac2ef6bb33f1f988d5ddad973556c305ca
When mScrollX has a very large value the checkmark will not show,
unless it is considered when setting the bounds of the drawable.
Change-Id: Ic4c9bce950816686622baa7330ebb2e69ecfb8e6
Before, we'd have something like 2006 4月12. After, we have 2006 4 12.
The alternative would require using custom NumberPicker.Formatter instances
for the year and day fields in these locales, and that seems significantly
more disruptive.
Bug: 8766552
Change-Id: I568578aae2f80f2acfc53cd277ef3beae6743472