1. Implementing text content navigation at various granularities.
For views that have content description but no text the
content description is the traversed at character and word
granularities. For views that inherit from TextView the
supported granularities are character, word, line, and page.
bug:5932640
Conflicts:
core/java/android/view/View.java
Conflicts:
core/java/android/view/View.java
Change-Id: I66d1e16ce9ac5d6b49f036b17c087b2a7075e4c0
Handle the edge cases a bit better. Deal with padding. If a smooth
scroll begins, the list is empty, but a data change is pending, try
again on the next looper pass.
Bug 6453837
Bug 6434713
Change-Id: I53f22ebacdcbc5d981a6c8055c4fd3fc1ef140f6
1. The model is using a package monitor to observe changes in
packages (adding/memoving/etc) to update its internal state
for which it then notifies its clients. However, the monitor
is called from a binder thread and the work has to be off
handed on the thread that created the model. Hence, clients
do not need to worry about using the the model from the UI
thread since the change callback may touch the UI from
another thread.
bug:6386152
Change-Id: I882a0f4104907f64de64a95ece585052bba457d6
Added bitmaps for permission group icons. We had to pick either
icons for a dark or light background, and it had to be light for
settings, so the installer theme has gone back to dark.
Tweaked the permission groups to match the icons.
Redid the group priorities to make them correct (they were written
with higher priorities being less important).
Fixed bug where priority was not being used for system apps.
Change-Id: Ia3d3f0c1614a11b4cfd11682ce9e6c9f87d75c06
These allocations were frequently triggered by the home screen. This change
removes dozens of allocations during page scrolls on home.
Change-Id: I7289efa28ecf5bd62459042b10062aa9cf0432dd
1. While a default target is very convenient, having two targets for the
widget on a phone takes too much space and the apps do not have room
to add other essential affordances to the action bar. Making the default
activity show only of the screen is large enough - the action bar
accommodates at least four targets i.e. 500dip.
2. Fixed a bug where changing the backing model of an ActivityChooserView
when the view is not shown did not remove the observer for the old
model, hence the View can get into a state where it responds to changes
of two models while presenting only one. Also in such a case the view
would leak since the singleton model will keep a handle to it.
3. Updated the documentation of share action provider to explain how a
a developer can change the backing history file and refresh the UI
based on the historical data in that file.
bug:6447692
Change-Id: Id5c9e54cd5df322ded8574ba028cb680e628243b
1. Making sure that the comment blocks for methods setting/getting
resource attributes include links to the related attribute
documentation.
bug:6442803
Change-Id: If8acedfedf02400eee3f61ca3029325c05a5fb86
Bug 6442795
When the measureWithLargestChild setting is enabled, LL used to
measure the full container taking the largest child rule into account,
but the child views were not properly remeasured for AT_MOST
measurespecs. Correct this.
Fix measureWithLargestChild for height
Change-Id: Ieb91114bc2ae65f9104337bd6d16a7d9e559571d
Bug 6429006
Disallow intercepting touch events for parents of
ScrollView/HorizontalScrollView when scrolling begins. Properly
respect touch slop when the child of a ScrollView does not accept
touch events.
Change-Id: I2ce503ad5104d450829ed58cd2748c9163e020d3
This reverts commit 8a36e05443 which was causing
keyguard_screen_tab_unlock.xml to have a bad layout.
Change-Id: I50bdc6dbdf8d7b98ef77eae532860d375574213e
Bug 6378843
Corrects CL 183460, which would clip text with a width greater than
twice the TextView's width.
Internal horizontal translation is now handled in a similar way to
vertical scrolling.
Internal scrolling is indeed handled by the TextView, which translates
the canvas and sets the clipping bounds accordingly.
When drawing the internal DL, we tighten the horizontal bounds like we
did for the vertical bounds using top and bottom. As in Touch.java, we
use the getHorizontallyScrolling() method to know if we indeed have to
measure the actual text width. If there is no horizontal scrolling we
use the TextView's width as a safe upper estimate in order to avoid an
actual computation. Note that horizontal scrolling is typically only
used for long single-lined text, so that the measurement loop is quick.
As a result, the internal DLs represent the entire text, and there is no
need to invalidate them when an internal scrolling takes place. This
behavior replaces the draw-only-what-is-needed we had before, but is
more consistent with what we do for long texts inside of a ScrollView
with no noticeable performance change, even on very long text.
Change-Id: I47c24c0ae988547d4f1e9f87d136225c93a3056d
Bug 6404882.
When a cell has an unspecified row and a column that is specified as greater
than the specified number of columns, GridLayout fails to report or correct
the error and loops indefinitely searching for a valid row to place the cell.
There is a cyclic dependency between the validation of layout parameters
(and allocation of undefined cell indexes) and the maximum column/row counts.
A performance optimization in layout paramter allocation caused this dependency
to be handled in correctly. The problem is fixed in this CL for this bug and
the symmetric problem for rows.
Change-Id: I0392343bc8a721a0ca7163f58f233ba8046c22e2
Bug 2597058
ListView's touch scrolling can query the adapter for new views. As we now
flush pending touch events before running layout/draw traversals (when we
normally bring ListView back in sync), this can now happen more often.
Resync data before executing a scroll if a data set change is pending.
Change-Id: I3e4eba4c2537911ba9cb3393ee4d9e68e46f84bb
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