Commit Graph

67 Commits

Author SHA1 Message Date
Alan Viverette
690a16c350 Invalidate the cached ripple drawable mask if mask layer changes
Bug: 21955350
Change-Id: I2e610a5a0af39668b7e9447cfd7d48d35e11d299
2015-06-19 13:42:39 -07:00
Alan Viverette
99ca2a8470 Account for hotspot bounds in RippleDrawable projection check
Bug: 21502154
Change-Id: Iedf4bd07f10ec13070a68870304ab651c1f15c68
2015-06-08 16:10:27 -07:00
Alan Viverette
15ce834e52 Reduce amount of unnecessary RippleDrawable mask redraw
Bug: 19638504
Change-Id: Ie7b639c543150e13aec30dfeca2b303d5b601cf3
2015-05-29 16:23:43 -07:00
Alan Viverette
5bc0144302 Update ripple drawable target radius on bounds change
Only bothers with the background and active ripple, since the exiting
ripples are in hardware animation mode anyway and can't be updated.

Bug: 21079749
Change-Id: I0f70c0c0feea32e2c70bb9b1b0fa3b7846b20c7f
2015-05-15 17:22:24 -07:00
Alan Viverette
d21be49975 More documentation for handling RippleDrawable mask at run time
The docs are now really explicit about the layer's ID and how to set
or update the mask layer from code.

Bug: 20493831
Change-Id: I801f10cd08fd1b4bb226c63a1bdf3271229928ea
2015-05-04 12:51:54 -07:00
Alan Viverette
388cd3b69c Fix visual styling for Material Spinner background
Adds explicit padding attributes to LayerDrawable, constrains the ripple
to fit within the container to avoid projection.

Bug: 19359934
Bug: 20083467
Change-Id: I46da941fba37552adeb2c1fe617b799f576df0c6
2015-04-21 13:00:33 -07:00
Alan Viverette
e0f95f39c5 Fix issues with theming of preloaded ColorStateLists
Ensures changing configurations mask is propagated to the host drawable
so that it can be properly cleared from cache on configuration changes.
Also fixes constant state handling of the mask in the Inset and Rotate
drawables.

Hides new ColorStateList methods related to theming, since they should
only be used during preloading or internally by framework drawables.

Fixes bug where the cached versions of themeable ColorStateLists were
modified by calling applyTheme() on the host drawable.

Also cleans up some docs and naming in GradientDrawable.

Bug: 19966397
Change-Id: I8c8d3cabbaf94b488c2b8fe9fd423e07d824c19c
2015-04-01 13:10:18 -07:00
Alan Viverette
fc8882f134 Clean up ripple exit, null out software animators on cancel/end
Bug: 19682421
Change-Id: I40ff56ed98a6c67cd01c74e455899825013a1f12
2015-03-18 17:26:54 -07:00
Alan Viverette
6a67db4138 Implement bounded ripple animation
Bug: 19431322
Change-Id: I5dc1a28d8675cc6fb036b815d6227113c3f1aa4b
2015-03-09 18:54:25 -07:00
Alan Viverette
53776a2b3c Merge "Refactor ripple components, simplify background animation" 2015-03-10 01:51:59 +00:00
Alan Viverette
f872ee0057 Refactor ripple components, simplify background animation
Moves animation lifecycle and software/hardware hand-off into a unified
RippleComponent class, which makes it easier to maintain the components.
Adds better javadocs and comments to explain what's going on.

Bug: 19431322
Change-Id: Ifb9b9a7dcc24238719ef12293493ca3df107679f
2015-03-09 18:25:21 -07:00
Chris Craik
bd3bfc5285 Improve docs for drawable tint and color filters
bug:19564477
Change-Id: I7e11baae2d4dd245965904c85b8855de71f6b6ac
2015-03-02 16:21:02 -08:00
Alan Viverette
a129622071 Unify wrapper-type drawables
Fixes several issues with constant state and propagation of drawable
property changes to wrapped drawables. Also un-hides the layout
direction accessors and hotspot getter.

Change-Id: Iff19db6a95059cbcfcbde7af0ac33871ccd41615
2015-02-20 15:00:25 -08:00
Alan Viverette
88d44d4ada Add attribute for controlling ripple radius
Sets up the action bar item and control styles to use a 20dp radius
ripple to match latest Material spec.

Bug: 19370157
Change-Id: I87cba01076ee83937a6bfd36fc7dc188e1eb4672
2015-02-13 11:11:12 -08:00
Alan Viverette
8ac90a0609 Avoid ripple buffer creation for empty bounds automerge: b74155c automerge: e6e216c
automerge: 2aacb86

* commit '2aacb861f4c7b80c5d2bb22956c9a5d4ace4df67':
  Avoid ripple buffer creation for empty bounds
2015-01-21 21:13:33 +00:00
Alan Viverette
b74155cf01 Avoid ripple buffer creation for empty bounds
Bug: 19068439
Change-Id: I031d4303bbf101a25612dce6f02d81ce4cf58e2b
2015-01-21 12:30:49 -08:00
Alan Viverette
45c4bbbbce Allow use of theme attributes in color state lists
BUG: 17384842
Change-Id: Ibdc413acbd00e37b908432abd55f6521c22b8fc9
2015-01-05 14:59:19 -08: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
Alan Viverette
6dfa60f33c Avoid extra saveLayer calls in RippleDrawable, fix docs
Also fixes opacity returned from InsetDrawable to accurately reflect
the transparent inset area and updates button to correctly use tint.

BUG: 18226391
Change-Id: Ia9a88d9d663990a6829d2f251c7f59ea2a79d816
2014-12-04 16:52:16 -08:00
Alan Viverette
ebc9f2e773 Update locally cached drawables when constant state changes
Previously we were failing to update references to drawables that had
been pulled from constant state, so we were drawing the wrong ones.

Also fixes button Z translation on press, which was WAY too high.

BUG: 18542282
Change-Id: Ifde7d64e31d31737854cfcbe75777e5b07a06e3a
2014-12-04 12:54:46 -08:00
Alan Viverette
cc3c573334 Reduce number of saveLayer calls in RippleDrawable
Removes an extra saveLayer call by rendering ripples as overlapping. We
are now down to zero saveLayers when drawing unmasked ripples or ripples
masked against opaque content/masks, one saveLayer for ripples masked
against content and two saveLayers when masked against an explicit mask
layer.

BUG: 18226391
Change-Id: I0fc09d21fbc462fbcfe4c26fc7b18737f584043e
2014-11-07 15:31:16 -08:00
Alan Viverette
d21fd9d1cc Add theme and config change support to more Drawable types
BUG: 16045735
Change-Id: Ic03173a1c1779c1bb545c4c389f77afed97011ee
2014-10-29 10:24:42 -07:00
Alan Viverette
b70cfb9103 Merge "Avoid saveLayer in RippleDrawable if the background won't draw" into lmp-mr1-dev 2014-10-15 21:18:00 +00:00
Alan Viverette
9a00cbcc66 Merge "Update preload list, clean up drawable theming" into lmp-mr1-dev 2014-10-14 22:47:43 +00:00
Alan Viverette
17cd4dfe3a Update preload list, clean up drawable theming
Removes all implementations of three-arg ConstantState constructor, since
we handle mutation and applyTheme() in Resources now. Moves progress bar
tinting to android:tint attribute. Correctly implements applyTheme() and
canApplyTheme() in all drawable wrapper and container classes.

Change-Id: Ic9cb43d0d6228aa4914f3124bed234b837beaa41
2014-10-14 14:07:21 -07:00
Alan Viverette
a7b64e8eef Avoid saveLayer in RippleDrawable if the background won't draw
BUG: 17952941
Change-Id: Ic2640f847e2ed43fc5117d43230513ee7696d9e7
2014-10-13 16:47:57 -07:00
Alan Viverette
2627206e1b Revert "Always project ripples"
Projecting ripples places them under shadows, which is not
ideal. Punting this workaround and waiting until we have
proper support for rounded corner clipping on windows.

This reverts commit f90b6bd54f.

Change-Id: I61946649bbb1bf74a969d74e5353608afc8e4463
2014-10-13 23:18:04 +00:00
Alan Viverette
f90b6bd54f Always project ripples
We already handle bounding rect in draw(), so this just ensures
that ripples are always clipped to window background outlines
until we can implement more general clipping.

BUG: 17498583
Change-Id: Iaff51fb177b017a11822bdf4f31c117fc9522c15
2014-10-09 14:47:19 -07:00
Alan Viverette
f92f26fef2 Slow down ripple background fade in from press
BUG: 17433613
Change-Id: Ie9c4046532d61ad8ef8e044d14557db5d52e0d0b
2014-10-08 14:49:21 -07:00
Alan Viverette
5004032ebc Fixed mutate() for RippleDrawable, ASLD, AVD, fix applyTheme in VD
BUG: 17646144
Change-Id: I58c111d86224dc8f7f557073c0bcbc22ad74aa1b
2014-09-26 10:37:30 -07:00
Alan Viverette
2ae5640354 Reduce overdraw after clearing ripples in RippleDrawable
We only need to force a transparent draw after canceling a render
thread accelerated animation, and then we can draw again without
the transparency to avoid overdraw in the display list.

BUG: 17451761
Change-Id: I640f9a29d0940a93802f14a15f27d2c2072755ce
2014-09-15 12:27:13 -07:00
Alan Viverette
8683a4f819 Only force drawing in RippleDrawable when necessary
BUG: 17451761
Change-Id: Ibb9d1c64791ec54eb90608c957eeb5efb1712b4a
2014-09-10 14:05:15 -07:00
Alan Viverette
a3f0c2b21a Simplify ripple background drawing, fix ripple alphas
Eliminates an extra saveLayer on the background in the common case of
a rectangle-bounded ripple.

Ripples and backgrounds are now drawn at 50% opacity of the ripple
color, which ensures that both the ripple and background are visible
and that the pressed state has a correct combined alpha.

Also fixes a bug where hardware (RT) animation was getting turned off
prematurely.

BUG: 17405007
BUG: 17398089
BUG: 17394445
BUG: 17389859
Change-Id: Idb5808368fe563581a51a8cb9778275ee8d22f4c
2014-09-05 19:15:44 +00:00
Alan Viverette
94b88e7103 Merge "Remove partial support for hotspot changes on focus movement" into lmp-dev 2014-09-03 18:31:47 +00:00
Alan Viverette
a8a8ff000b Remove partial support for hotspot changes on focus movement
Also removes unused x/y position and tween values on RippleBackground. The
background is now always centered within the hotspot area.

BUG: 17300399
Change-Id: I1904c9f44e6bebb2b434d2b092205edd42204263
2014-09-02 15:58:03 -07:00
Alan Viverette
be0dd99bac Make sure ripple background bounds are used for invalidation
BUG: 17349157
Change-Id: Ie88fbabbc66349aea9b7d00e28ca12f93776a4a7
2014-09-02 15:05:27 -07:00
Alan Viverette
fdbb98e56d Fix disappearing ripple background, treat active ripple separately
There is only a single background, and it did not correctly handle
enter() being called while exit() was busy animating. We now cancel
all animations when starting an enter or exit. Also separates the
active ripple from the list of animating (exiting) ripples.

BUG: 17042060
BUG: 17281011
Change-Id: I4d4e33560867c7c71c1bdb72b17d52d6fbd86f68
2014-08-29 19:54:59 +00:00
Alan Viverette
40e38d4367 Fix NPE in RippleDrawable
Invalidate was called while we were busy clearing the list of
animating ripples, which led to an inconsistency between the
ripple count and actual state of the ripple list.

BUG: 17136636
BUG: 17281011
Change-Id: Ifb7be7eb334ad9a44cc3a1e6f55ad1e35218989a
2014-08-26 17:08:21 -07:00
Alan Viverette
d78a44576c Jump drawable state (including ripples) on view detach
BUG: 15350931
Change-Id: I09928f59fb7b9f6d87b1f5219353a41ae6b5681d
2014-08-21 12:57:45 -07:00
Alan Viverette
34a14f967a Better handling of unresolved theme attributes
Also adds a (very obviously wrong) default color to RippleDrawable

Change-Id: I6d29b371f4e59accbebf25eb059b1f372b9184b0
2014-08-15 17:15:39 -07:00
Alan Viverette
27cede8777 Prevent re-entry when clearing animating hotspots
BUG: 16651728
Change-Id: I2b1b1501a4adfded833d0ed95ec3537ae217a6d7
2014-08-12 15:03:01 -07:00
Alan Viverette
dbcbca4475 Don't make ripples respond to selection state
Also exports view pressed state for hierarchyviewer.

BUG: 16622634
Change-Id: I754428dd1d59f3b7450b01976a73d5151d27152e
2014-08-08 12:23:41 -07:00
Chris Craik
77b5cad3ef Add outline alpha
bug:16140822
bug:16566746

This allows background drawables to alter the opacity of a shadow
being cast with their own alpha values.

Change-Id: I49698cc7c1bf4b2b55ffe2f82899543ca62bc61c
2014-07-31 12:29:57 -07:00
Alan Viverette
b6417b8b94 Don't double-cancel the active ripple
BUG: 16651728
Change-Id: Ibe413eabf9644c2ac9a5c8c1418ff996dacf606a
2014-07-29 10:21:50 -07:00
Alan Viverette
6ce6d70f9c Separate background from ripple for better focus/press UX
Regresses the "jump" when focus changes, since the background position
is static and we don't have any reasonable UX spec for this yet.

BUG: 16323640
Change-Id: I7152546ed08375864174049b342653b3c4d3d9fb
2014-07-24 16:31:42 -07:00
Alan Viverette
96335e3543 Merge "Remove the max ripple count exceeded warning" into lmp-dev 2014-07-24 15:36:09 +00:00
Alan Viverette
e5d6cf85e2 Remove the max ripple count exceeded warning
BUG: 16543509
Change-Id: I84ec8e01136d1f0f34c6153d8ef7936de547746e
2014-07-24 13:45:46 -07:00
Alan Viverette
ade9ef236c Ensure ripple mask gets updated in public constructor
Change-Id: I084ff0357c8e3cf08d3700d9c7dce42726b986f1
2014-07-23 11:25:28 -07:00
Chris Craik
31ba192dd2 Tweaks to outline API
b/15283203
b/16142564

Remove boolean return value chaining, as it's redundant with
the data in the Outline itself.

Change-Id: I3116e57cd1b35c98b74e95195117edd7e39fb2df
2014-07-19 00:13:59 +00:00
Alan Viverette
7068c39526 Fix hotspot movement on focus change
BUG: 15726988
Change-Id: I97f88e5f7e404ecfcd5c254fddd18c8f6616064e
2014-07-16 00:06:14 +00:00