- fix bug #6163772
- use bits field and pack them as much as possible
- take care of "supportsRtl" flag from Manifest
- add visual unit tests
CTS unit tests in another CL
Change-Id: Ib77c4eb423854209af130688c5ef9977401a9c1c
Some views (such as ImageView and TextView) handle non-opaque alpha
values directly. This was originally an optimization, but we can handle it faster
in many cases without this optimization when DisplayList properties are enabled.
Basically, if a view has non-overlapping rendering, we set the alpha value directly
on the renderer (the equivalent of setting it on the Paint object) and draw each
primitive with that alpha value. Doing it this way avoids re-creating DisplayLists
while getting the same speedup that onSetAlpha() used to get pre-DisplayList properties.
Change-Id: I0f7827f075d3b35093a882d4adbb300a1063c288
1. Now the NumberPicker max height is a bit smaller.
2. The Time/Date picker add top and bottom margin to
compensate for the shorter NumberPickers.
3. The Time/DatePicker dialogs have only "Done" button
and tapping onside saves the current state.
bug:6277808
Change-Id: I4c5928debb1c3b7fe126d6cd6745e3c5eb980901
Editor specific method and fields are extracted to a dedicated Editor class.
Some private fields and methods had to be made package private so that the
Editor can see them. No change in the public API.
Other changes in this CL:
- The Blink class no longer has a WeakReference to the TextView
- EasyEditSpanController is no longer a field of ChangeWatcher.
Future work:
remove the getEditor() method in TextView and
clean whitespaces and indentation.
remove the EasyEditSpanController as a change watcher, fix spanWatcher
Change-Id: I1fbe0176b6bd27d90f556dc3a90469367f77437c
An Editable text will use a BoringLayout when the text is empty.
Fallback on the regular layout draw text method when the layout
does not support the block optimisation.
Change-Id: Ie4bdb4381f2f58b71d7c35b2f5734e544e3115ea
Bug 6241159.
onCreateInputConnection should not create an Editor but instead
should return an input connection iff the text is editable.
Change-Id: Ie9ea55b2467f5a40e6243b36f9b44fa6dfab586f
Several issues came up after DisplayList properties were enabled,
so they were disabled pending fixes. Those issues have been fixed, so
DisplayList properties are once again being enabled by default. This
CL both re-enables these properties (in View.java and DisplayListRenderer.h)
and fixes the various issues that enabling them caused the first time around.
Related issues (all currently marked as Fixed, though that was simply because
DL properties were disabled - this CL provides the real fixes now that
DL properties are enabled by default):
Issue #6198276 Text input broken
Issue #6198472 Native crash at pc 00076428 in many different apps in JRM80
Issue #6204173 Date/time picker isn't rendering all parts of UI
Issue #6203941 All Apps overscroll effect is rendered weirdly/has flickering
Issue #6200058 CAB rendering issue - not drawing items?
Issue #6198578 Front camera shows black screen after taking picture.
Issue #6232010 Layers not recreated when children change (DisplayList properties)
Change-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b
Add properties to Java API so as to better mirror the framework's XML API.
I'm not familiar with many of these areas so this CL is worth some scrutiny.
Change-Id: Iff63c43521305efaad5a2189c1b5556d2353cbd4
Bug 6198276, bug 6193544, bug 6199959
The activation of display list properties on Monday 19th
broke the editable text behovior.
Disabling display lists to fix the blocking rendering
issues.
Change-Id: I5bd0584d1a34c6bb0af79ef45499154e9004eac1
1. The number picker no longer shows up and down arrows, it
has only three touch targets which are the currently selected number
in the middle with a lesser one above and greater below, now what
you touch is what you get, flingability and long press are still
supported.
2. Removed the restriction for a View with an AccessibilityNodeProvider
to not have any concrete children. If the View has a provider, then
this provider is responsible for creating the AccessibilityNodeInfos
for all its descendants, concrete and virtual. The number picker is
a good example for such a case - it has a concrete input view and
two virtual buttons as its children. This is a safe change since
this behavior has not been released.
3. This patch also fixes bug where the number picker is stretched too
much in the Theme theme.
bug:6177794
bug:5728294
Change-Id: I5fb370fe0b864a156f5f2aaf2de5f55f6b6d4e84
Bug 5763685
Long text in a ScrollView (not when the View's internal
scroll is used) is cached as a unique display list when hardware
rendering is on.
As a result, each time the text is edited, the entire display
list has to be updated, which takes a significant amount of
time (up to 500ms for a few thousand lines), proportional to the
size of the text.
This CL splits the text into multiple display lists as the
text is edited. The boundaries of the display list are aligned
with paragraphs.
There is still an issue when the number of lines changes: onLayout()
is called which invalidates all the display list. When the source
of that change is line wrapping and not a change in the view's
dimensions, we should be able to simply shift down the previous DL
instead of re-creating everything.
Change-Id: I7de49a1e5637cdfc9ef06b64b1ec4b61d9ea2415
Also fix logic for consistency checking. Prior to this CL
GridLayout was causing Launcher to issue warnings to the logs
incorrectly.
Change-Id: I9d4017388e7c80c8bc5fa6cab97970835ff261fe
AbsListView was doing too many invalidates during scrolls/flings.
Some of them were also covering too large an area of the screen.
Change-Id: I68fe5dda3657bddd673996e7cf4f3c3672c66cfc
Basic functionality of handling View properties (transforms,
left/right/top/bottom, and alpha) at the native DisplayList level.
This logic is disabled for now (via compile-time flags in View.java and
DisplayListRenderer.h) as we continue work on it (there is no advantage
to the new approach until we optimize invalidation and rendering paths
to use the new code path).
Change-Id: I370c8d21fbd291be415f55515ab8dced6f6d51a3
1. The framework was appending some text to convey the state of a
a CheckedTextView or a RadioButton or a ToggleButton or a Switch
but the checked property already conveys that information. It is
responsibility of the screen reader developer to append the state
text based on the checked property. This change is requested by a
few screen reader developers.
bug:5951683
Change-Id: Ieba6797770201155c48e37147ae375dfcb5238aa
Bug 6104467
Add properties that can be set/retrieved programmatically to match the
XML attributes available.
Also add resource ID versions of Drawable setters for Switch.
Change-Id: I198cfd9701189ab200c3190f61d18c459b7e4591
Bug 6104562
Add properties that can be set/retrieved programmatically to match the
XML attributes available.
Change-Id: Ief28e5cad9ec3e6c2d12dd11ff9fa24f22eecec3
Bug #6120957
Using this new callback, views can interrupt and resume their
animations or other periodic tasks based on the current state
of the display.
Change-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa