70 Commits

Author SHA1 Message Date
dniz
5df3bebd63 Update elevation overlays to be based absolute elevation, factoring in the elevation of all parent views
Will follow-up with TabLayout absolute elevation separately

Resolves https://github.com/material-components/material-components-android/issues/381

PiperOrigin-RevId: 255404830
2019-07-03 13:55:49 -04:00
isabellekim
36b760d220 Change ripples on MaterialButton to use the alphas provided in the ColorStateList.
RippleDrawable on different API levels will modulate the alphas differently
for the pressed / focused / hovered states. Therefore, in order to get the
desired alphas for pressed / focused / hovered states, we are using the
mtrl_(low|high)_ripple_(pressed|focused|hovered|default)_alpha values which have
been defined to account for the different implementations of RippleDrawable.

This will allow developers to specify different colors for focused vs. pressed if desired.

PiperOrigin-RevId: 255306749
2019-07-03 13:50:29 -04:00
dniz
91f292432f Rename MaterialShapeDrawable internal elevation overlay util method
PiperOrigin-RevId: 253794203
2019-06-18 13:56:22 -04:00
marianomartin
53e4e9cca8 Internal cleanup
PiperOrigin-RevId: 253624674
2019-06-18 13:43:33 -04:00
dniz
6783f9e1cd Clean up naming of elevation overlay methods and attributes
PiperOrigin-RevId: 253283047
2019-06-18 13:34:29 -04:00
cketcham
cb71e2d582 Update BottomAppBar hideOnScroll offset to account for the shadow drawn at the top of the view.
PiperOrigin-RevId: 250562675
2019-05-30 13:59:24 -07:00
cketcham
f259def8b6 Force the path to be calculated for a copied MaterialShapeDrawable
PiperOrigin-RevId: 249833111
2019-05-24 14:27:23 -04:00
marianomartin
90837ec485 Internal cleanup
PiperOrigin-RevId: 249243403
2019-05-21 12:15:07 -04:00
leticiars
ce59247330 Adding padding support for MaterialShapeDrawable.
PiperOrigin-RevId: 243997071
2019-04-19 21:24:40 -04:00
dniz
1f244318d8 Add @hide to all @RestrictTo annotations that are missing it
PiperOrigin-RevId: 243646339
2019-04-19 16:29:30 -04:00
dniz
1889b9fed6 Add support for translationZ to MaterialShapeDrawable
Useful for animating elevation shadows in Light themes and elevation overlays in Dark Themes

PiperOrigin-RevId: 243260129
2019-04-19 15:54:27 -04:00
marianomartin
fd01672af5 Fix nullness in FAB
PiperOrigin-RevId: 238990635
2019-03-22 16:21:40 -04:00
afohrman
ca07e5f616 Create OnChangedListener to respond to ShapeAppearanceModel changes and Shapeable interface, and implement it in Chip.
The OnChangedListener provides a callback that MaterialShapeDrawables can use to invalidate themselves when the associated ShapeAppearanceModel changes. This allows for modifying the ShapeAppearanceModel through the get/setShapeAppearance methods that the Shapeable interface exposes without having to update the client to redraw itself.

PiperOrigin-RevId: 238703600
2019-03-22 16:16:23 -04:00
dniz
6adba8f93b Fix MaterialShapeDrawable to work with ColorStateLists for fill and stroke tint
and paint

PiperOrigin-RevId: 238478987
2019-03-22 16:09:16 -04:00
dniz
7b594393c8 Dark Theme Elevation Overlay system
PiperOrigin-RevId: 237829773
2019-03-22 16:02:26 -04:00
marianomartin
01874ad4e9 Change setElevation in MSD to use default offset
PiperOrigin-RevId: 236858323
2019-03-08 09:58:58 -05:00
dniz
c0de00cdac Fix MaterialShapeDrawable bug that causes compat shadows to be drawn for round rects on lollipop+
PiperOrigin-RevId: 235786787
2019-02-27 18:00:21 -05:00
dniz
03cf027bc7 Deprecate Experimental annotation and remove from Shapes
PiperOrigin-RevId: 229200655
2019-01-18 14:10:16 -05:00
dniz
a4964594a1 Add MaterialShapeDrawable setElevation(float) and deprecate setShadowElevation(int)
PiperOrigin-RevId: 228572421
2019-01-10 17:16:43 -05:00
marianomartin
c4f014b192 Add back getPathForSize(int int, Path) to MaterialShapeDrawable.
PiperOrigin-RevId: 227901559
2019-01-10 16:27:32 -05:00
afohrman
db4c951c0c Add annotations to hide protected MaterialShapeDrawable#drawShape() method.
MaterialShapeDrawable#drawShape() is protected, so it shouldn't be visible outside of the library group. This commit also adds documentation, since this method is protected.

PiperOrigin-RevId: 227696166
2019-01-10 16:01:24 -05:00
cketcham
dc72aaeed4 Migrate Gradle build and sources to androidx
PiperOrigin-RevId: 225551505
2018-12-21 11:07:45 -05:00
marianomartin
cf69538c9c Refactor path logic out of MSD
PiperOrigin-RevId: 224182175
2018-12-06 12:05:06 -05:00
marianomartin
61f426afca Remove (get/set)PaintFlags from MSD
PiperOrigin-RevId: 224162294
2018-12-06 12:04:30 -05:00
cketcham
7a2c2823ee Only recalculate the path if it has changed
PiperOrigin-RevId: 223826749
2018-12-06 11:47:06 -05:00
marianomartin
d75fb6513c Fix constant state in MSD
PiperOrigin-RevId: 223802087
2018-12-06 11:46:29 -05:00
Material Design Team
f152b75e1a Automated g4 rollback of changelist 223558824
PiperOrigin-RevId: 223564801
2018-12-06 11:43:02 -05:00
marianomartin
c75482b473 Fix constant state in MSD
PiperOrigin-RevId: 223558824
2018-12-06 11:42:42 -05:00
marianomartin
bf024ebed9 Remove stroke shader from MSD
PiperOrigin-RevId: 223397575
2018-12-06 11:38:24 -05:00
marianomartin
3bf777db8a Implement Mutate in MaterialShapeDrawable
PiperOrigin-RevId: 223059565
2018-12-06 11:31:50 -05:00
cketcham
95cf55f04b Remove option to use paint shadow
PiperOrigin-RevId: 223017988
2018-12-06 11:25:01 -05:00
cketcham
ab61f4c50a Restrict access to setting the vertical offset for the shadow.
I think we may want to remove these methods in the future and just handle this automatically.

PiperOrigin-RevId: 220944239
2018-11-16 11:19:10 -05:00
cketcham
3d8e2b408c Stop expanding the clip rect on versions of android that have native shadow support
PiperOrigin-RevId: 219478262
2018-11-01 16:17:19 -07:00
isabellekim
e9a8d48f60 Fixes MaterialShadowDrawable shadow to respect bounds that don't start at (0,0)
PiperOrigin-RevId: 219367777
2018-11-01 16:15:40 -07:00
cketcham
22cd4dba4f Prevent invalidating MaterialShapeDrawable if parameters haven't changed
PiperOrigin-RevId: 219319784
2018-11-01 16:13:36 -07:00
afohrman
a25e13ca39 Update isStateful() method in MaterialShapeDrawable.
isStateful() should include the statefulness of the fill and stroke colors.

PiperOrigin-RevId: 219310584
2018-11-01 16:11:35 -07:00
afohrman
ed37888efe Remove MaterialShapeDrawable hairline inset from fill bounds.
PiperOrigin-RevId: 219303758
2018-11-01 16:09:21 -07:00
connieshi
d9d9b6e1ef Change scope of #getFillBounds to protected so children can override it.
PiperOrigin-RevId: 219227988
2018-11-01 16:08:38 -07:00
connieshi
0f764e9a15 Change scope of #getBoundsAsRectF and #drawShape to be protected so the children of MSD could call them.
PiperOrigin-RevId: 219189920
2018-11-01 16:08:10 -07:00
afohrman
38ef896da2 Adjust corners of MaterialShapeDrawable's stroke to draw the stroke perfectly over the fill.
To draw the stroke with the correct corner radius, MaterialShapeDrawable now calculates what the corner radius should be and adjusts the stroke accordingly.

Before this change, the corner radius was calculated such that the stroke didn't fully reach the edges of the shape. This change tweaks the corner radius calculation so that the stroke's path matches the fill's path and is overlaid directly on top of the fill's shape.

PiperOrigin-RevId: 219139586
2018-11-01 16:04:35 -07:00
cketcham
3bc7afd292 Disable native shadows when compat shadows are always drawn.
PiperOrigin-RevId: 219134990
2018-11-01 16:04:08 -07:00
afohrman
52eb143e99 Optimize stroke inset bounds method.
Use RectF#inset() instead of manually insetting the stroke by half of the stroke width.

PiperOrigin-RevId: 218887035
2018-10-28 21:47:13 -04:00
cketcham
560c982284 Enable shadows for BottomAppBar
PiperOrigin-RevId: 218868156
2018-10-28 21:44:27 -04:00
cketcham
ab1992a2ba Fix shadow rendering and add shadow rotation angle for MaterialShapeDrawable
PiperOrigin-RevId: 218576270
2018-10-28 19:13:20 -04:00
marianomartin
e192fbe3e0 Use round rect when possible in MSD
PiperOrigin-RevId: 218559377
2018-10-28 19:12:46 -04:00
afohrman
ccf98970c2 Add methods to get and set stroke and fill paint colors.
Also refactor some of the stroke methods, since stroke was using the tint rather than the color to color the stroke.

PiperOrigin-RevId: 218383900
2018-10-28 18:34:50 -04:00
cketcham
530100e574 Add modes to control compat shadows for MaterialShapeDrawable
PiperOrigin-RevId: 217861830
2018-10-28 18:32:26 -04:00
cketcham
2edfef1a6c Draw compatibility shadows if the shape is concave or native shadows aren't supported.
PiperOrigin-RevId: 217689320
2018-10-28 18:28:35 -04:00
gauthams
17ffd91b6c Add cornerRadius setter to MaterialShapeDrawable.
PiperOrigin-RevId: 217643698
2018-10-28 18:28:07 -04:00
gauthams
6abaa62d56 Update MaterialShapeDrawable to return dummy ConstantState.
PiperOrigin-RevId: 217412761
2018-10-28 18:24:30 -04:00