Ensures that delegate code is run last. Previously, calling the super
method from an accessibility delegate set on a widget would only run
code in the widget's parent. Next, the delegate code would run. Finally,
the widget's code would run. As a result, the widget code would override
any data supplied by the delegate.
By moving all overridden code to internal methods, we ensure that the
call chain for super includes the widget's parent code followed by the
widget's code. The delegate code will always run last.
BUG: 17641433
Change-Id: Ib9d403156c1fc4fb04f65f3c126d1277a44b3740
Enabled use of color selectors for the day number text, which lets us
use the "activated" text color and push the selection background
opacity up to 100%. Also ensures the selector circle stays within the
bounds of the selected day.
BUG: 18864682
Change-Id: Ia36ea748f83e13683a1de8ac1a259d353578d61a
Incrementally unify the upper layers for Skia and HWUI.
Remove redundant code from GLES20Canvas.java; instead
use inherited mNativeCanvasWrapper and superclass method
definitions.
Moves some unrelated SkPaint utility functions from Renderer
to new utils/PaintUtils.
bug: 15672762
Change-Id: I4ddd4214b8e9eeb95289d054ef423f2542bb5fa5
Reverse-translate the canvas before passing to Drawable.draw() so that
we don't double-apply the drawable's translation.
BUG: 18904688
Change-Id: I8450de9b240ddeae887b4e1003c0608da814a001
The accessibility manager has APIs for clients to observe changes
in accessibility, touch exploration, and high contrast states. The
notification of the listeners has to be done with no lock held but
in an attempt to do that the code was incorrectly iterating over
the copy on write collection.
bug:18840784
Change-Id: I6803ff1657fbf6b0cc7936671d5bbdebb5cbf6bb
As a bride-gap solution to click on partially covered views in accessibility
mode we compute a point on the screen where to send a down/up event pair.
A heuristic we used was that if the action target is covered by a view that
that has a touch listener we consider the target obscured by the one with
the listener. However, this generates false positives, for example the target
is covered by a view that observers touches for scrolling but not clicking.
bug:18782023
Change-Id: I31ff34011d45667f1eddda47373ec00e4a23dbf6
Delegation is broken for widgets, but this fixes the most egregious issue
where TextViews that are top-level list items weren't handling CLICK
actions correctly. This will still need work, since now the focus action
won't run, but it's an improvement.
BUG: 18736135
Change-Id: I808ef628198946cc87f13c53d6245cd162a1e517
In accessibility mode to click a view we computed a point where to send
down and up touch events. The logic that computes where to send the
events was not clipping the bounds of the child to these of the parent.
As a result we wrongly computed we can send the events in a location
of the child that is outside of its parent, thus the click having no
effect or clicking the wrong thing.
bug:18672945
Change-Id: If9c452e7e5b196f699db33d37dbc6775d5d1622a
getChildVisibleRect was enhanced to obey the official contracts for
clipping children and clip to padding. Unfortunately this meant that
ViewGroups with no parent have no way of checking if they will be
clipped to their own bounds and therefore should clip a child rect.
Treat orphaned view subtrees as entities that clip to the root view
bounds to preserve prior CTS guarantees.
Bug 18642973
Change-Id: I9fcbeb0e92cd6715cd9184183d36889614ed0bed