90 Commits

Author SHA1 Message Date
cketcham
b5c3fecacc Add warning to ShapePath when an operation is being used in a situation where a compatibility shadow would normally be drawn
PiperOrigin-RevId: 295847026
2020-02-19 10:52:22 -05:00
Material Design Team
5a396edbb6 Always use padding in drawable state so that it can survive newDrawable()
Previously padding was set to both drawableState.padding and this.padding, but only retrieved from this.padding, which results in lost padding after newDrawable() and makes drawableState.padding useless.

PiperOrigin-RevId: 293878104
2020-02-10 09:59:00 -05:00
cketcham
6e340c49d4 Fix BottomAppBarTopEdgeTreatment bug caused by large negative vertical offset
While some small negative values for vertical offset do work, this use case is currently not supported. Most negative values result in the cutout being drawn incorrectly. This also adds a new exception to help clarify the crash in the future.

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

PiperOrigin-RevId: 292148159
2020-01-29 16:15:04 -05:00
marianomartin
bb1e9e47a4 Enable non convex shadows on Q
PiperOrigin-RevId: 281750600
2019-11-22 21:24:52 +00:00
cketcham
8ed1484690 Update MaterialShapeDrawable to handle overlapping edge and corners
PiperOrigin-RevId: 281498365
2019-11-20 14:39:06 -05:00
marianomartin
7eb1af5f8e Support disabling bitmap drawing in MaterialShapeDrawable
Creating an additional bitmap affects performance and there are instances where it's not necessary.

Add the option to disable that.

PiperOrigin-RevId: 280434620
2019-11-15 15:09:41 -05:00
dniz
ab54c23e9b Fix MaterialShapeDrawable stroke corner bug
PiperOrigin-RevId: 272977992
2019-10-04 20:09:24 -04:00
ldjesper
294f12498d Rename setCornerRadius to setAllCornerSizes
PiperOrigin-RevId: 272959729
2019-10-04 20:08:43 -04:00
cketcham
a130a0c3e0 Add support for percentages to ShapeAppearanceModel
PiperOrigin-RevId: 272946740
2019-10-04 16:33:47 -04:00
cketcham
0547d2a06b Uncouple CornerSize from CornerTreatment
This allows for more easily updating the CornerSize independently from the CornerTreatment and makes it possible to create different types of CornerSizes such as percentage based corners. However, this means corner sizes can be different depending on the bounds of the shape, so the bounds need to be provided. MaterialShapeDrawable has bounds and the ShapeAppearanceModel, so there are new convenience methods there which return the current corner size for the current bounds of the drawable.

PiperOrigin-RevId: 272908508
2019-10-04 15:23:16 -04:00
ldjesper
17ff72c69a Remove deprecated getPathForSize not in any stable release
PiperOrigin-RevId: 272877489
2019-10-04 11:28:25 -04:00
ldjesper
5afdf00f80 Remove deprecated method not present in stable MaterialShapeDrawable#getStrokeTint
PiperOrigin-RevId: 272741709
2019-10-03 19:40:24 -04:00
marianomartin
4f8bc435c4 Fix binary compatibility issues with MaterialShapeDrawable
These methods existed in 1.0.0 so they can't be removed.

PiperOrigin-RevId: 272665301
2019-10-03 11:44:57 -04:00
afohrman
5592c1b74e Optimize MaterialShapeDrawable's RectF usages.
PiperOrigin-RevId: 271588528
2019-09-27 14:06:30 -04:00
cketcham
5c384c3804 Add space to the bitmap for drawing shadows to prevent clipping
PiperOrigin-RevId: 268449384
2019-09-12 14:04:45 -04:00
marianomartin
215a839598 Internal cleanup
PiperOrigin-RevId: 267504117
2019-09-12 13:48:16 -04:00
cketcham
27b58f1611 Make ShapeAppearanceModel immutable
PiperOrigin-RevId: 266378228
2019-09-04 14:20:35 -04:00
cketcham
7bb525ff59 Update usages of ShapeAppearanceModel to use Builder pattern
PiperOrigin-RevId: 266144471
2019-08-29 15:39:51 -04:00
marianomartin
f5c9026efa Internal cleanup
PiperOrigin-RevId: 265550877
2019-08-29 11:39:58 -04:00
cketcham
1538729814 Add @NonNull and @Nullable annotations
PiperOrigin-RevId: 265057078
2019-08-29 10:28:12 -04:00
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