Fixes up some recycling of TypedArray objects to reduce the
number we need to allocate during inflation etc.
Change-Id: I948dccc052997779001eaa99db2a710b04be01ae
1. Added an AccessibilityDelegate class in View which can be set by
a client that wants to cutomize accessibility behavior via
composition as opposed to inheritance. Insead overriding a new method in
View thus being bound to the API version that introduced this
method a developer can conditionally inject the accessibility
customization if the platform API version is heigh enough. The
developer will have to override the method of interest of the
delegate. The default implementation of the delegate methods is
the same as that of View in the case that there is no delegate
set. If a delegate is set calling an accessibility related method
on View will be handed off to the corresponsing method of the
delegate.
bug:5259555
Change-Id: I00e750e22e5e7164a1b571cb3d12ecaf4ab93db4
* commit 'fc7a8081f8d9ca3c2891d3c2d748dc26f8139ed6':
If suggestion span is not enable, removes the suggestion span (so no underline is displayed), and do not try to display the suggestion pop-up.
A core app is one that has coreApp="true" in its manifest tag.
The system can successfully boot (though a little painfully) with
only framework-res.apk, SettingsProvider.apk, SystemUI.apk,
DefaultContainerService.apk, and Launcher2.apk set as core apps.
Currently this boot mode is always turned off.
Change-Id: Ieaa4a8031c2c391a12996aa8d8b1d65fc2b09d6b
The DIRTY flag is used to track which elements of the view hierarchy need
to be redrawn on the next drawing operation. This flag is set on the parent
hierarchy of a view when that view is invalidated. There is an optimization for
opaque views that tells the parent that it is dirty, but that it need not
redraw its own content because the view will cover it (since it is opaque).
This dirty-opaque logic breaks down in the current code because we only set
these dirty flags on the parent hierarchy, not on the view itself. In the situation
raised by this bug, we would invalidate the parent container directly (which does
not case the dirty flag to be set), then we would invalidate a child of that view.
Because the child is opaque, the DIRTY_OPAQUE flag would be set on the parent
container. This would cause us, in the later rendering process, to skip the
drawing on that parent container, assuming that it was only asked to be redrawn
because of its opaque child's invalidation.
The fix is to now set the DIRTY flag on an invalidated view, not just on its parent
hierarchy. The DIRTY_OPAQUE logic will avoid setting the opaque flag on views/parents
that are already marked DIRTY, thus an invalidated parent will be correctly drawn
during the drawing process.
Change-Id: Ib5e014a125a4f5168f6a5a3166e941474659aca5
1. There was a bug that was not handling correctly the
case for which the interrogator requests an accessibility
node info and the message describing how to fetch the
latter for the same process case was delivered after the
code that checks whether the message is there in order to
dispatch it is executed. Now the message handling is done
correctly - the caller checks if the message is present and
if so processes it, otherwise the caller sleeps and is
interrupted if such a message arrives.
bug:5138933
Change-Id: I4c2940b46c9a52a51c5ee48b83ca6811489765d6
Bug: 5265814
When MOVE events are batched, a ListView may not receive only
one MOVE event followed immediately by an UP in the case of
a quick fling. Unfortunately, the old code relied on there
being at least one additional MOVE event following the first
in order to really scroll or fling.
This change extracts common code from onTouchEvent to
handle scrolls as soon as they are started if there is additional
remaining motion beyond the initial touch slop (taken care of by
mMotionCorrection).
Change-Id: I8c8f03f580bfba96aa69cf111d245ba7fd3b4c2a
Reset the text wrap scale to the correct value (i.e., reading level
scale) on zoom to overview. This addresses the scenario where text is
wrapped at a larger scale following a pinch zoom and double tap to
reflow.
Bug: 5254253
Change-Id: I57f706ef4254dd3f194cc35f109dd48b61b72f73