Commit Graph

893 Commits

Author SHA1 Message Date
Doris Liu
44027214d4 Handle multiple animation actions within one frame
Bug: 27438778
Change-Id: I1b14da4bc7b4e82e5b4e45f3eb9ad04e3d7842c4
2016-03-01 18:09:21 -08:00
Alan Viverette
2d3ca47ef8 Always update drawable container source res
Bug: 27349209
Change-Id: I3bb3d4862a03fd5ce0beeb2bf5208f2917ec9320
2016-02-25 12:27:02 -05:00
Doris Liu
3005843506 Merge "Support running AVD on UI thread" into nyc-dev 2016-02-23 22:43:53 +00:00
Doris Liu
28cfd20f02 Support running AVD on UI thread
By default, AVD animates on RT thread. But since in some cases there's a
need for a finer control on when the frame update for the animation should
happen, such as coordiating the AVD animation with other animations that
run on UI thread, we are providing a way to force the AVD to run on UI
thread.

Bug: 27278616
Change-Id: I372ecd3dc52e3fa0bdce3a1e9c19443f9b199027
2016-02-23 14:40:47 -08:00
Alan Viverette
921ec44647 Fix NinePatchDrawable handling of density changes
Scaling is now manually applied when the canvas density is not set.

Removes set/getNinePatch accessors that were added in N, since these
are not used and setting the nine patch directly will break padding.
Also removes local NinePatch, which was not necessary.

Bug: 27038114
Change-Id: Ie8b2e485b54d1ed1521081b329a09915fd0a95c1
2016-02-23 14:54:01 -05:00
Doris Liu
c21e8bcb01 Ensure invalidate is called after start()/reverse()
Change-Id: Iec96ada74cc7b845e21b5f0eb208ff7c7b1071ed
2016-02-19 14:35:55 -08:00
Doris Liu
8b083206ae Revert "Revert "Check RenderNode's owning view before attaching animators""
This reverts commit eb40178af3.

Change-Id: I6838ecb35b50847746ee66ac204f14eb5f579b91
2016-02-19 13:52:41 -08:00
Doris Liu
c4bb185d41 VectorDrawable native rendering - Step 5 of MANY
This is reverting the revert of what reverts the revert of the original
implementation. Fourth revert is a charm!

This reverts commit df7fdb1e0b.

Change-Id: I6fc3a5accfd8b79c3da31bbc101ad9e9b4d6e7dd
2016-02-19 13:51:31 -08:00
Doris Liu
5b7188aebc Merge "Revert "Revert "Revert "VectorDrawable native rendering - Step 5 of MANY"""" into nyc-dev 2016-02-18 19:06:20 +00:00
Doris Liu
b9fb8fdf78 Merge "Revert "Check RenderNode's owning view before attaching animators"" into nyc-dev 2016-02-18 19:04:28 +00:00
Doris Liu
df7fdb1e0b Revert "Revert "Revert "VectorDrawable native rendering - Step 5 of MANY"""
This reverts commit 0d20a275a5.

Change-Id: I97c782f1164a5d39ab74dc098cca71d9e1b30cd8
2016-02-18 18:37:02 +00:00
Doris Liu
eb40178af3 Revert "Check RenderNode's owning view before attaching animators"
This reverts commit 12abdeb3c7.

Change-Id: I938deddf5f294127f87a0e70f940fe5b9a85e0b2
2016-02-18 18:34:59 +00:00
Doris Liu
e6e57a9d51 Merge "Check RenderNode's owning view before attaching animators" into nyc-dev 2016-02-16 23:38:57 +00:00
Doris Liu
5b49c6f31b Merge "Revert "Revert "VectorDrawable native rendering - Step 5 of MANY""" into nyc-dev 2016-02-16 23:38:43 +00:00
Doris Liu
12abdeb3c7 Check RenderNode's owning view before attaching animators
-Only add animators to a RenderNode when its owning view is attached
-When changing animator's target RenderNode, remove the animator from
 the old target RenderNode that it's currently running on, if any.
Bug: 27141983
Bug: 27145149
Change-Id: I9c9592382d64ecc0390f7ec743a59ce1ad7d9798
2016-02-16 14:25:48 -08:00
George Mount
d86d3fd768 Merge "Set the hover state to the same as focus state in RippleDrawable." into nyc-dev 2016-02-16 15:19:03 +00:00
Doris Liu
0d20a275a5 Revert "Revert "VectorDrawable native rendering - Step 5 of MANY""
This reverts commit e03ef25a3e.

Change-Id: I9c2e1c891667451a3ee668e414bf337ad67279ab
2016-02-12 19:49:29 -08:00
Teng-Hui Zhu
f7ae8d727b Fix the CSL theme support inside VectorDrawable's fill and stroke
b/26774249

Change-Id: I9a9fcdb0e88c4b46ab86c6b3fd780d40b96024db
(cherry picked from commit 15cc49ae52)
2016-02-12 17:51:20 +00:00
John Reck
e03ef25a3e Revert "VectorDrawable native rendering - Step 5 of MANY"
Bug: 27136799

This reverts commit 18bdf443e3.

Change-Id: I825b061eec2a591f2d18119ba64494624b9ad4f2
2016-02-11 17:02:33 +00:00
Doris Liu
18bdf443e3 VectorDrawable native rendering - Step 5 of MANY
Implemented reset() (public API for AVD)
and reverse() (internal API that needs to be supported)

Change-Id: Ife1650049f271cad1347943151a5800c40c20aa2
2016-02-11 01:08:47 +00:00
George Mount
e4f976dc3b Set the hover state to the same as focus state in RippleDrawable.
Bug 24810682

There was no hover state for bounded ripples and it was decided
that a solid background color exactly like the focus state
was desired. This change triggers the RippleDrawable to act as
if it is focused when it is hovered.

Change-Id: I94b2a4d03dd4c47fc021c84bb0ba4b4be82f3e95
2016-02-10 07:31:18 -08:00
Jorim Jaggi
7cd1f0d39a Do not invalidate drawable if tint doesn't change
Change-Id: I99d7a679ba3aa4978f2915f1a52f23dbce7fd971
2016-02-09 22:07:32 -08:00
Doris Liu
ef062ebd20 Ref count the nodes in VectorDrawable
Also added API check so that for pre-N we ignore invalid VD animation,
in order to avoid breaking old apps.

Bug: 26975469
Bug: 26949340
Change-Id: I498539ad6a05de3d886e7dcdc8a167e78333ab11
2016-02-05 11:12:25 -08:00
Doris Liu
766431aa57 Revert "Revert "VectorDrawable native rendering - Step 4 of MANY""
This reverts commit 5a11e8d0ba.

Change-Id: I7a48b59c4f930dad65ddc8590c25a12636244ea2
2016-02-04 16:29:51 -08:00
Doris Liu
5a11e8d0ba Revert "VectorDrawable native rendering - Step 4 of MANY"
b/26949340 and b/26975469, b/26975079 as well 

This reverts commit f276acd984.

Change-Id: I4b55177daf0d289bc03604c71fd4bf579f65073a
2016-02-04 20:59:00 +00:00
Doris Liu
3aaff80f32 Revert "Fix NPE for invalid target exception"
This reverts commit d4fda02dd5.

Change-Id: I73341dc41c7effaa3209107b4e85503b17e2c826
2016-02-04 20:02:52 +00:00
Doris Liu
d4fda02dd5 Fix NPE for invalid target exception
Change-Id: I57b319fae617792351c6ec9872c3b73cd25dc4e5
2016-02-03 11:10:49 -08:00
Doris Liu
f276acd984 VectorDrawable native rendering - Step 4 of MANY
This CL runs VectorDrawable animation on RenderThread. The changes in this CL
include:
- Convert all the animators in AnimatorSet for AVD into a set of RenderNodeAnimators.
- Hook up the new animators with RenderThread
- Add drawOp in RecordingCanvas for drawing VD so that during the animation
  on RenderThread, all the property changes on VD can be reflected on the screen.

TODO:
- Implement reverse and reset for AVD.

Change-Id: I2df1d754f2db0ad098d9c15dde4bb2bdfafc2315
2016-02-02 15:04:01 -08:00
Teng-Hui Zhu
dbee9bb342 Gradient for VectorDrawable's fill and stroke
Add ComplexColor interface for both GradientColor and ColorStateList.
Set up constant state, factory, theme attrs for GradientColor, while
refactoring the ColorStateList's similar code. (Functionality in CSL should
be the same).

Support themeing in both the root and item level in GradientColor.
For example, both startColor in <gradient> tag or color in <item> tag can
have theme color.
Add tests for both simple and complex cases with themeing etc.

Hook up the native VectorDrawable implementation using 2 extra JNI calls for
simplicity. Such calls only happen at inflate and applyTheme call.

b/22564318

Change-Id: Ibdc564ddb4a7ee0133c6141c4784782f0c93ce0e
2016-01-27 16:32:42 -08:00
Chet Haase
f0a7b3b694 Fix problem with zero-duration AnimatedVectorDrawables
There was an issue with some vector drawables, particularly those with more
than one underlying, sequential animators, where the final frame would not be
drawn when battery saver mode was enabled (or animators were set to have durations
of 0). This resulted in an incorrect fingerprint graphic on the lockscreen, because
the animation effectively didn't run at all.

The fix is to always invalidate whenever the AnimatedVectorDrawble draws itself. This
causes us to constantly invalidate() the view while the animation is running.

Issue #26591987 Fingerprint icon displayed as dots when batter saver mode is on

Change-Id: I13cbd71fd229db09418c6dcacfec5a13bbb44b2e
2016-01-26 14:21:53 -08:00
Alan Viverette
253331c051 Clarify interaction between setPivot() and setPivotRelative()
Change-Id: I108df5170f702b4938b4fe7fa35ed42d4a8a2d5d
2016-01-14 13:18:39 -05:00
Alan Viverette
0ef12aefe5 Clean up LayerDrawable, refactoring only
Uses consistent naming and ordering for padding and inset calculations.
Updates documentation to include UNDEFINED_INSET as public API, since we
return the value and will accept the value as a valid param. Flattens
out RTL logic for readability.

Change-Id: Ie704e2e5fc7f5763500ebe1217ddbbf4d0c5ef86
2016-01-12 09:47:09 -05:00
Alan Viverette
0671f05fa9 Revert ripple background fast-enter behavior to M style
No longer fast-enters the background for unbounded ripples.

Bug: 25602850
Change-Id: I3250505c1de04a72fb764174abf269e247e21578
2016-01-07 16:37:39 -05:00
Doris Liu
841f6e19ba Avoid calling invalidateSelf() from draw call
Bug: 26329675

Change-Id: Ieb76b6f63a5139f6033ca9baa9ba6fac36ae466c
2016-01-05 00:53:07 +00:00
Doris Liu
4bbc293126 VectorDrawable native rendering - Step 3 of MANY
- Refactored VPathRenderer & VectorDrawableState
- Moved all the VD rendering into native
- Set up hooks for VD's property changes in JNI for animated VD

TODO: JNI calls can be further reduced when we convert the animation
in AVD to use RenderNodeAnimator, in which case animation will be
driven from native and therefore most of the JNI hooks for changing
VD's properties during animation will no longer be needed.

Change-Id: I52021f4d7bea057b83ace54085d870dd45acae0f
2015-12-28 16:08:38 -08:00
Philip P. Moltmann
bb9f686b40 Allow a print service to specify per printer icons, description and
info-activities

The icon is loaded from the discovery session only when it is displayed
to avoid having to store too many icons in memory.

Also the icons are not maintained in the historical printers. Only if
the printers are available nice icons are shown. A historical printer is
updated with the appropriate properties (including icon) once it becomes
available.

Bug: 24135005
Change-Id: Iec389bab514b024634be8fb5fc8928371cba8740
2015-12-21 09:54:57 -08:00
Selim Cinek
ea4bef7386 Removed duplicate content from group notification header
Previously the headers all had duplicate content, which is
now optimized to look visually more appealing.

Change-Id: I38ed8db1985fd8a9470888e1b7e1e6b0f2e23b19
2015-12-08 16:25:00 -08:00
Alan Viverette
d35c13df6e Merge "Attach drawable resource ID and name to getDrawable() exceptions" 2015-12-08 19:49:56 +00:00
Alan Viverette
c078c605ab Attach drawable resource ID and name to getDrawable() exceptions
Wraps the entire getDrawable() method in a try/catch block. Clears the
stack trace from the re-thrown exception, since we only need the trace
from the original exception.

Also clears stack traces from re-thrown RuntimeExceptions in applyTheme
implementations.

Change-Id: I92396abf9e748eef78777174b297a09e118f5e70
2015-12-08 14:49:13 -05:00
Chris Craik
f3dc7ac724 Correct GradientDrawable outline alpha computation
bug:26066107

GradientDrawable should provide a shadow casting outline if using a
translucent fill.

Change-Id: Ie6b409bafe3fcf9c5216662168d7349e2a9e3413
2015-12-07 13:48:40 -08:00
Neil Fuller
568f4de11a Merge "Fix @code escapes" 2015-12-03 09:44:01 +00:00
Neil Fuller
71fbb81b14 Fix @code escapes
The body of {@code} must not be HTML escaped. This is one of
several changes that fix the source in conjunction with a
doclava fix.

Bug: 25757239
Change-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881
2015-12-02 14:24:11 +00:00
John Reck
c34f1b093f Fix RippleDrawable exit animation
Bug: 25602850

The exit-out animation doesn't want to animate from the current
value, but rather the final value of the exit-in animation

Change-Id: I1cd12b0653b5241c6e21ef1cca86b0a83ce9c5a2
2015-11-30 14:47:59 -08:00
Alan Viverette
61ffc199f2 Merge "Apply VectorDrawable density scaling before applying theme" 2015-11-19 14:50:40 +00:00
Alan Viverette
d633ca417d Apply VectorDrawable density scaling before applying theme
Refactors density handling to look more similar to GradientDrawable's
implementation, which should make things easier to maintain. We no
longer update density directly in updateStateFromTypedArray, instead
handling it in applyTheme() and inflate().

Lazily calculates local density-dependent dimensions and invalidates
when the constant state density changes, which should ensure a random
call to applyTheme() will still result in the correct intrinsic
dimensions.

Change-Id: I726878a6cd75d38a550637e3e7a7b6bc68bcaf6d
2015-11-19 09:47:09 -05:00
Doris Liu
804618d086 VectorDrawable native rendering - Step 2 of MANY
Introduced PathData in Java, which is effectively a thin layer around the
native instance. PathData holds the verbs and points which is being used
in path morphing/interpolation. The verbs and points can be interpreted
into skia path commands, which is now done in native and therefore saves
a handful of JNI calls during path creation.

Removed the old PathDataNode mechanism and changed the PathEvaluator
to use PathData instead.

Also added tests and a microbench. Also ran CTS tests for VectorDrawable
and AnimatedVectorDrawable, and passed all of the existing tests.

Change-Id: Ia166f5172ff031fe18b154327967f911a62caec1
2015-11-18 13:38:23 -08:00
Alan Viverette
477f3d092d Obtain cached drawables using the correct Resources object
Previously we were discarding the Resources when forwarding from the
two-arg factory method to the one-arg method. This CL also updates the
documentation for ConstantState to be slightly more comprehensive.

Bug: 25688078
Change-Id: I4fbbf43f95fe792fa6f0bf9db8fd9a7cbfa51d1d
2015-11-16 10:12:44 -05:00
Alan Viverette
b6181565e5 Merge "Return correct intrinsic dimensions for inset colors" 2015-11-13 15:48:23 +00:00
Alan Viverette
76165b2a4b Return correct intrinsic dimensions for inset colors
Also updates documentation for getIntrinsicWidth/Height to accurately
reflect the behavior of the existing implementations and provide an
explanation of what "intrinsic" means.

Bug: 25646242
Change-Id: I11daf57e598148adfda922cfc1ba31ed48a16bd7
2015-11-12 10:47:53 -05:00
Alan Viverette
bd5294bcb8 Pass densityDpi into RippleComponent, store as densityScale
Fixes a regression where the foreground was created against the density
in DPI rather than as a scale factor.

Bug: 25602850
Change-Id: Ia871aa5def4319682a73228efb599f31b65afdb6
2015-11-11 12:51:10 -05:00