Commit Graph

6155 Commits

Author SHA1 Message Date
Svet Ganov
7486bc1f5a Merge "Fix an edge case in computing click location in accessibility mode." into lmp-mr1-dev 2014-12-12 20:48:09 +00:00
Svet Ganov
9fc96c5371 Fix an edge case in computing click location in accessibility mode.
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
2014-12-11 22:33:48 -08:00
Adam Powell
35da41e6c3 Have ViewGroups without a parent clip child visible rects to bounds
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
2014-12-10 18:59:34 -08:00
John Reck
4f1942d999 Merge "Teach AssetAtlas about more drawables" into lmp-mr1-dev 2014-12-09 23:12:42 +00:00
John Reck
dad7d84c04 Teach AssetAtlas about more drawables
Bug: 18317479

Change-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b
2014-12-09 14:18:33 -08:00
John Reck
c47c98be04 Fix issue with RNA destruction mid-animation
Bug: 18521508

Fix an issue where an RNA's native object was destroyed
before the java-side object was started

Change-Id: I487fb476e0ecdf7000515f4f7320e8cfbc50a52b
2014-12-09 12:35:12 -08:00
Svet Ganov
381a423634 Merge "When accessibility on cannot click on a view covered by a HorizontalScrollView" into lmp-mr1-dev 2014-12-08 21:28:19 +00:00
Svet Ganov
e232d4a6aa Merge "Clear clicked nodes from the accessibiliy cache." into lmp-mr1-dev 2014-12-08 21:08:36 +00:00
Alan Viverette
b942b6f15c Fix hotspot coordinate propagation in ViewGroup and AbsListView
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
2014-12-08 10:37:39 -08:00
Svet Ganov
0322100598 Clear clicked nodes from the accessibiliy cache.
Nodes that are clicked can change state as a result of a click,
e.g. a check box. The accessibility service may decide to get the
source node from the click event to probe its state and get a
cached state since the window content changed event is after the
click one. Therefore, we have to clear the state of the click
event's source from the cache to ensure the client can query the
latest state of that source.

bug:18625975

Change-Id: I9e339c2fdcf74f260bb8ad86b9b873f7ddd75f19
2014-12-05 16:52:31 -08:00
Svet Ganov
b3fa2787ea When accessibility on cannot click on a view covered by a HorizontalScrollView
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
2014-12-05 13:13:15 -08:00
Filip Gruszczynski
26af8c197c am 26b18771: Merge "Private Window flag to disable touch events in WallpaperService." into lmp-sprout-dev
* commit '26b187711fdf6224e14df465a58f30f510011b49':
  Private Window flag to disable touch events in WallpaperService.
2014-12-05 02:34:26 +00:00
Svetoslav
3a0d878ab5 Ensure all events from a showing window are dispatched.
Accessibility services may opt-in to introspect the interactive
windows on the screen. If window introspection is enabled there
is a case where some events from a showing window are received
before the updated window state from the window manager. Now the
window manager sends over the windows before notifying the app
for the focus change.

bug:18625996

Change-Id: Ic481e01efbe12dc92f090f799feeb236672fc7b3
2014-12-05 00:37:38 +00:00
Filip Gruszczynski
b8c0694ae8 Private Window flag to disable touch events in WallpaperService.
Change-Id: I18b46340f89cbea0b6daeb1efe9c31656f4e1a5d
2014-12-04 15:02:18 -08:00
Derek Sollenberger
4d9da135ca Merge "Update AndroidPixelRef to prevent VM from cleaning up memory prematurely." into lmp-mr1-dev 2014-12-04 13:04:52 +00:00
John Reck
01a5ea35fb Resume RT-animations after a pauseSurface
Bug: 18203577

The issue occurs as a result of performTraversals() both doing
a window relayout call *and* early-returning because it's not dirty.

To fix this pauseSurface() returns whether or not the RT-side is
"dirty" to force ViewRootImpl to do a draw even if mDirty is
otherwise empty.

Change-Id: I534f367e75d18d273ebf14df3927f5c464ef6bef
2014-12-03 13:03:59 -08:00
Derek Sollenberger
f29d5a5b21 Update AndroidPixelRef to prevent VM from cleaning up memory prematurely.
bug:18306529
Change-Id: I1ea94df1dcaf4fcf248b63dc8b0a13f36412570a
2014-12-03 13:43:30 -05:00
Chris Craik
81defc6a84 Merge "Sync ViewOverlay size init with RenderNode" into lmp-mr1-dev 2014-12-02 16:59:21 +00:00
Chris Craik
2180ba7abd Sync ViewOverlay size init with RenderNode
bug:18381202

Setting mRight/mBottom must be accompanied by updating the RenderNode.

Change-Id: I4dae06a5ca43247b0b3642d85808e2724e486692
2014-12-01 17:55:37 -08:00
Alan Viverette
e6bd61d5bb Merge "Fix visible rect computation for views with padding" into lmp-mr1-dev 2014-12-01 22:06:13 +00:00
Alan Viverette
ab2cf6dafe Fix visible rect computation for views with padding
Previously, the computation was double-counting the left and top padding
because it was treating the third and fourth Rect.intersect() arguments
as width and height rather than right and bottom.

BUG: 18418091
Change-Id: I2ab669ee5060372ae11cfe804dcc05c7426be1ec
2014-11-26 14:34:36 -08:00
Wale Ogunwale
361ca21acc Added unique id to display devices and their settings.
The display setting saved to disk were using a localized name for
the key. This is an issue if the user changes languages after the
display settings have been saved. We now use the non-localized
name for the display to access the settings if it is available,
else we fall back on the localized name.

Bug: 18190800
Change-Id: I837c06a8935df10727229a1aa2bb6eeb3953707f
2014-11-26 13:40:52 -08:00
John Reck
2b36a86b8e Wire up surface width/height to lockHardwareCanvas DO NOT MERGE
Bug: 18338026
Change-Id: I6c37774ef1312278ae81280561060662fef923fb
(cherry picked from commit b35c9602cf)
2014-11-24 17:59:38 +00:00
John Reck
418c8549dc Merge "It's super critical to call nStart" into lmp-mr1-dev 2014-11-21 23:32:08 +00:00
John Reck
72d6e4facb It's super critical to call nStart
Bug: 18204974

Even if we are canceling or ending an animation
nStart() *must* be called, otherwise the native-side listener
is not attached (lazy-attached for JNI cyclic reference reasons),
and then Animator::callOnFinishedListener() no-ops as there's
no listener set

Add a lifecycle verifier to ensure that nStart is always
called on animators that are attached and get finished

Change-Id: Ibc345b5be97b6d3f95a11c361ebe020d030fd3b6
2014-11-21 14:27:21 -08:00
Chris Craik
29dc496a42 Merge "Revert "Add a way to override Xfermode DO NOT MERGE"" into lmp-mr1-dev 2014-11-21 22:11:13 +00:00
Chris Craik
69e65019b0 Revert "Add a way to override Xfermode DO NOT MERGE"
Feature no longer needed.

bug:18448377

This reverts commit 4678dcc552.

Change-Id: Ib0a19946e966a54857165555827b5fa7b34b6bea
2014-11-21 22:05:33 +00:00
Bryce Lee
d45cedd6f5 Merge "Make default windows features configurable." into lmp-mr1-dev 2014-11-21 19:18:50 +00:00
Bryce Lee
d6e6e7235a Make default windows features configurable.
Bug: 18434078
Change-Id: I0bafce1a201088a8681f4b9e43237e23b49296a2
2014-11-21 11:08:45 -08:00
Filip Gruszczynski
a83c5806de Merge "SwipeDismissLayout makes activity opaque only after entry animation ends." into lmp-sprout-dev
automerge: 96c5d37

* commit '96c5d37fb5139465cdd3d882b5deba830497557a':
  SwipeDismissLayout makes activity opaque only after entry animation ends.
2014-11-21 10:13:59 +00:00
John Reck
83fb64e8ec Merge "If the surface is lost, release it" into lmp-mr1-dev 2014-11-21 00:00:08 +00:00
John Reck
0b2dac3452 Merge "Rename callDrawGLFunction" into lmp-mr1-dev 2014-11-20 23:26:07 +00:00
John Reck
680df8d60e Rename callDrawGLFunction
Bug: 18471503
Change-Id: I00cb356ff2338da7fd07b9ba30b5b3dcbdffdb2e
2014-11-20 14:40:52 -08:00
Alan Viverette
8ccf071ab8 Merge "Move default token handling into WindowManagerImpl" into lmp-mr1-dev 2014-11-20 19:16:58 +00:00
Chris Craik
3b2ba44be3 Merge "Improve logging around performance critical events" into lmp-mr1-dev 2014-11-20 17:36:26 +00:00
John Reck
b13de07f0b If the surface is lost, release it
Bug: 18403246

Surface#isValid() is used throughout ViewRootImpl to
determine Surface validity. However, this will return true
until Surface#release() is called, even if the underlying
BufferQueue is abandoned. We have a very strong signal
from EGL that the Surface is now dead, so use that signal
to call Surface#release() so ViewRootImpl's isValid() usage
will be valid.

Change-Id: Ib355560ef4ca7625c3c784174863d2d55267d93d
2014-11-20 07:38:00 -08:00
Chris Craik
70850ea258 Improve logging around performance critical events
bug:17702227

Add details useful to developers (such as layer size/View name), and
switch away from logging implementation names/details, since they
are generally not relevant to developers.

Change-Id: Iee605d182f241450f7e75a6d0c283d51fa1312f5
2014-11-19 17:24:30 -08:00
Alan Viverette
7c9746d4ef Move default token handling into WindowManagerImpl
BUG: 18451795
Change-Id: I1fc6db988ad879fded5318f33d08a4f09da38907
2014-11-19 17:02:16 -08:00
Chet Haase
85603a7faf Merge "Fix seeking and scaled duration behavior" into lmp-mr1-dev 2014-11-20 00:02:09 +00:00
Chet Haase
0d1c27a713 Fix seeking and scaled duration behavior
The animation scaled was not being factored in early enough in the
activity lifecycle. Also, setCurrentPlaytTime() was not accounting for
the scaled duration correctly. Finally, added setCurrentFraction() as
a more general-purpose seeking facility.

Issue #18222006 Animator duration scale ignored in some situations
Issue #17951668 add ability to seek fraction, not just time

Change-Id: Idad401f5ff5026d7046c36eee09d78a4793215dc
2014-11-19 15:29:47 -08:00
Filip Gruszczynski
6eafa902cb SwipeDismissLayout makes activity opaque only after entry animation ends.
Bug: 18340863
Change-Id: Ic60fa2463618f86b1ae23fc4a0c06cd348f28334
2014-11-19 11:05:43 -08:00
Chris Craik
0455174d34 Merge "Update clipToPadding docs" into lmp-mr1-dev 2014-11-18 23:33:30 +00:00
John Reck
37cdc191e3 Merge "Don't invalidate() on setClipBounds" into lmp-mr1-dev 2014-11-18 21:41:17 +00:00
John Reck
9029e5ecd0 Don't invalidate() on setClipBounds
Bug: 17510133

This is a RenderNode property now, so use
the faster invalidateViewProperty() shortcut
since a re-record isn't necessary

Change-Id: If3999bce9a1fb9b60e42f0ee624bb554361f96ac
2014-11-17 15:28:55 -08:00
John Reck
c99d3c99f8 Fix invalidateOutline
Bug: 18175261

invalidateOutline was switched to a lazy-method, but this doesn't
work because invalidateViewProperty intentionally does not
do a traversal, therefore the invalidate was never consumed.

However it was attempting to be lazy about work that is cheap to
do, so nuke the lazy aspect and restore invalidateOutline's previous,
correct behavior. rebuildOutline is kept to avoid triggering
traversals in places they are not needed

Change-Id: I70f8cbacd54a607c0bf0bc7fe6eea78554cb2ea3
2014-11-17 12:35:53 -08:00
John Reck
b3ec64e100 Merge "Wire up surface width/height to lockHardwareCanvas" into lmp-mr1-dev 2014-11-17 15:19:23 +00:00
Chris Craik
b165296a9c Update clipToPadding docs
Clarify that it doesn't clip anything but children,
and only if padding is non-zero.

Change-Id: I3e3ae31f52fc22304eb13d88765f9f4fc6e43e66
2014-11-14 17:05:06 -08:00
John Reck
8f5839be21 Merge "Document that circular reveal is async" into lmp-mr1-dev 2014-11-14 22:03:33 +00:00
John Reck
a3b35907de Document that circular reveal is async
Bug: 18058966
Change-Id: I64b35441f12bec433f633580319ec73c1e11e7a2
2014-11-14 14:02:55 -08:00
Raph Levien
505ffe3633 Merge "Check bounds on CharSequence drawText methods" into lmp-mr1-dev 2014-11-14 20:54:29 +00:00