There was a weird disconnect between setPressed() and hotspot propagation
behavior. This makes hotspot propagation work like setPressed(). Also
fixes ripple animation during drag-to-open.
BUG: 18631557
BUG: 18593243
Change-Id: Id4adf5d815e4d426b4182aac4d0c780f04472ae4
In accessibility mode we send down and up events activate a view. We will later
switch to accessibility actions but for now as a bridge-gap we compute a point on
the screen where to click for activating the view. The heuristic we use has edge
cases such as a view that handles all touch events but does not have any listeners.
In this case we do not ignore the target view's area covered by a view that handles
all touch events. As a result we click on the wrong target. While we cannot solve
this generically, in the case of standard components such as HorizontalScrollView
we can.
bug:18612258
Change-Id: If8482aac0d0ea53c5c90367d099d1b8d3a4559ed
There is a NullPointerException in `handleHorizontalFocusWithinListItem()`
because `selectedView.findFocus()` returns null and then there is no null
check when when the assigned variable `currentFocus` is used, although
`View.findFocus()` states that it may return null.
Change-Id: I6897027e9a2a238d9283e6b9f5146198989fcac0
Incorrect implementation that broke the Brightness dialog slider. Reverting
to the previous behavior.
This reverts commit c5c9d0af764f590ae0031b5470192a0a08ca42d1.
BUG: 18510040
Change-Id: I201b1da46be964fcf6f041bb92ef79c335c2d23d
The 24 hour setting was not respected correctly. Also
fixed a bug where the next alarm would not display itself
in the QS panel.
Bug: 16239208
Change-Id: I89734f783912dead5831db49db53fba04dbf54ee
Adds a minimum touch target size to the fast scroller so that we can
edge-align an 8dp thumb but still maintain a 48dp touch target.
BUG: 18467743
Change-Id: I31e9cf1948856f5fce7d75383b84a9359684ebe5
This CL improves the method by which excess space is distributed in GridLayout.
Previously, GridLayout would assume weights were arranged in a 'line' and
sum the weights in the assumed line to figure out the proportional allocation
to each view. The system involved running GridLayout's internal constraint
solver twice.
Behavior was unspecified (and surprising) when weights appeared in views
that were not linked together linearly, typically leaving the last view
in each axis with more space than expected (in GridLayout's Bellman-Ford
constraint solver, remaining space goes to the last span of the axis).
This CL changes the weight distribution mechanism to effectively integrate it
with the Bellman-Ford constraint resolution algorithm. It does this
by returning a boolean value from the constraint solver saying whether or
not the constraints could be solved and then using a binary chop to find
a maximum amount of space that can be distributed without violating the
constraints.
This implementation runs the solver log(<axis size> * <number of Views>)
times until finding the maximum amount of space that can be distributed according
to the weights without causing a contradiction. We expect the cost of this
variation to be around a factor of 10 worse than the previous implementation
but to provide a simple and general definition of space distribution via
weights that will be open to many future optimizations.
As a side effect, this CL also fixes a bug in GridLayout where remaining space
was distributed only along the major axis.
Bug: 17485996
Change-Id: I120f39e95e90b5b35072ef8a6c348ec541aae42a