Commit Graph

6132 Commits

Author SHA1 Message Date
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
Alan Viverette
0224d25db2 Merge "Account for window bounds in accessibility view click point computation" into lmp-mr1-dev 2014-11-14 01:46:01 +00:00
John Reck
b35c9602cf Wire up surface width/height to lockHardwareCanvas
Bug: 18338026
Change-Id: I6c37774ef1312278ae81280561060662fef923fb
2014-11-13 16:15:08 -08:00
Wale Ogunwale
28d3c245a1 Merge "Cancel or drop key events if activity is stopped." into lmp-mr1-dev 2014-11-13 19:00:07 +00:00
Adam Powell
87bc2acfd3 Merge "Optimize setting padding and backgrounds for views" into lmp-mr1-dev 2014-11-13 18:12:54 +00:00
George Mount
fa781f8c2c Merge "Update GhostView properly when underlying view changes." into lmp-mr1-dev 2014-11-12 23:10:35 +00:00
Raph Levien
d82f8a9a38 Check bounds on CharSequence drawText methods
The canvas drawText() methods on CharSequence arguments didn't check
whether the start and end offsets were within bounds, which triggered
native crashes. This patch checks the bounds and throws
IndexOutOfBoundsException when invalid.

Bug: 18282500
Change-Id: I1935bf21f828b960c817b40ebce6affd4ce8bb99
2014-11-12 15:05:16 -08:00
Alan Viverette
4acd0ecc7b Account for window bounds in accessibility view click point computation
BUG: 18177402
Change-Id: If591d1b9e5a8a7c4cade3ef4f3ec5e42d623b53c
2014-11-12 22:37:36 +00:00
George Mount
70cb4f3e71 Merge "Fix getChildVisibleRect to clip correctly." into lmp-mr1-dev 2014-11-12 22:11:45 +00:00
Rob Tsuk
41a8043b30 Merge "Add a way to override Xfermode DO NOT MERGE" into lmp-mr1-dev 2014-11-12 21:42:00 +00:00
Rob Tsuk
4678dcc552 Add a way to override Xfermode DO NOT MERGE
Add a non-public API to Canvas/GLES20Canvas to provide a way to draw
the touch ripple animation without using a save layer.

Change-Id: I6e2095adffe515194f669fb75bb67abf813bd518
2014-11-12 12:25:24 -08:00
Adam Powell
05f35127e3 Optimize setting padding and backgrounds for views
Don't reset the entire chain of child views whenever we set our own
padding or background; clear our own bidi resolution bits only. This
prevents doing a lot of extra recursive work when changing properties
of a parent view that cannot affect children.

Bug 18159214

Change-Id: I94300402785c79c3199e768ad7b6d7027d8d5d5f
2014-11-12 10:26:32 -08:00
Wale Ogunwale
c3672cd3f7 Cancel or drop key events if activity is stopped.
After an activity instance state is saved due to onStop()/onPause(),
there is a small window where it can still get key events like the
back button since we still allow the ActivityThread to handle
pending messages (like memory trim request) before informing the
activity manager that we are done. If the activity is stopped,
we will now drop non-terminal input events and set the cancel
flag on terminal events.

Bug: 18151331
Change-Id: I370d7c871530eea4b16fa42428d0248f1a87abb6
2014-11-12 09:23:22 -08:00
Wale Ogunwale
3ae0d3157d Fixed constant window switching on lock screen with Swype KB.
We allow TYPE_INPUT_METHOD windows to show on the lock screen.
These windows can attached other types of windows (For this
case the Swype KB was attaching a PopupWinow which will be
of TYPE_APPLICATION). This causes the popup window app token
to be added to the list of apps to be hidden on the lock
screen, thereby preventing the lock screen from been hidden,
which then causes a layout cycle(s). Now, we remove app
tokens for non-app windows from the hidden list in case it
was added by any attached widow they migth have.

Also, when we are updating window animations, set the
hideWhenLocked flag for windows that are IME tragets so
they don't go through unneeded cycles of having their
visibility policy set to hide/show/hide/show/...

Bug: 18021493
Change-Id: I3680256d41793f62def42fda00e26db1dcc990cc
2014-11-12 08:42:09 -08:00
George Mount
002d43d29b Fix getChildVisibleRect to clip correctly.
Bug 18292516

getClipVisibleRect now takes into account clipChildren,
clipBounds, and clipToPadding.

Change-Id: I181cd68354e70767868e9edd56bf82a58357391d
2014-11-12 08:04:34 -08:00
George Mount
264d3a21a0 Update GhostView properly when underlying view changes.
Bug 18308803

Change-Id: Iad1366ea8fe3ba488dfb82ff1f9e170cafb4b2ec
2014-11-11 12:15:01 -08:00
George Mount
12403b242f Merge "Make setOutlineProvider change transitionGroup." into lmp-mr1-dev 2014-11-11 15:41:33 +00:00
Adrian Roos
37d7a68de7 Fix inset hinting when adding window
Windows with FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS were
getting an incorrect content inset hint, because the
hinting didn't see the adjusted systemUiVisibility.

Also adds hinting for the stable insets.

Bug: 17508238
Change-Id: If9647277feb6811b15665b801accd896c51dbd12
2014-11-10 17:46:57 +01:00
John Reck
ca93f69c96 Merge "Have an actual fallback if the surface is lost" into lmp-mr1-dev 2014-11-07 22:41:03 +00:00
John Reck
050a8a050d DO NOT MERGE Fix finalizer ordering/double-free issue
Bug: 18289984

If Surface:finalize() happens after HwuiContext:finalize()
it would try to manipulate a destroyed object. However, as
Surface:finalize() always calls HwuiContext:destroy() this
can be fixed by simply getting rid of HwuiContext's finalizer

Change-Id: I7c912214417ab32891b1c58d045c9721e5f01965
(cherry picked from commit c298f9c917)
2014-11-07 21:33:40 +00:00
John Reck
ea4e76f68a Merge "Fix finalizer ordering/double-free issue" into lmp-mr1-dev 2014-11-07 19:29:47 +00:00
John Reck
aa95a88327 Have an actual fallback if the surface is lost
Bug: 17516789

This will force a relayout/reinitialize pass if the Surface
is lost mid-render instead of crashing on the next frame

Change-Id: If08bfa16f740728fa7c05904fa11e26f07b81e2e
2014-11-07 11:02:07 -08:00
John Reck
4b19b7aaff Merge "Fix wrong-thread issue" into lmp-mr1-dev 2014-11-07 18:34:55 +00:00
John Reck
c298f9c917 Fix finalizer ordering/double-free issue
Bug: 18289984

If Surface:finalize() happens after HwuiContext:finalize()
it would try to manipulate a destroyed object. However, as
Surface:finalize() always calls HwuiContext:destroy() this
can be fixed by simply getting rid of HwuiContext's finalizer

Change-Id: I7c912214417ab32891b1c58d045c9721e5f01965
2014-11-07 10:33:36 -08:00