Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4f8a981 authored by Alan Viverette's avatar Alan Viverette
Browse files

Default gradient radius to %p when no intrinsic width or height set

BUG: 18224018
Change-Id: I05cbe3023d0a5e6813658063d3a3633c6ddd8d96
parent 6f7fd0ba
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -943,7 +943,11 @@ public class GradientDrawable extends Drawable {

                    float radius = st.mGradientRadius;
                    if (st.mGradientRadiusType == RADIUS_TYPE_FRACTION) {
                        radius *= Math.min(st.mWidth, st.mHeight);
                        // Fall back to parent width or height if intrinsic
                        // size is not specified.
                        final float width = st.mWidth >= 0 ? st.mWidth : r.width();
                        final float height = st.mHeight >= 0 ? st.mHeight : r.height();
                        radius *= Math.min(width, height);
                    } else if (st.mGradientRadiusType == RADIUS_TYPE_FRACTION_PARENT) {
                        radius *= Math.min(r.width(), r.height());
                    }
@@ -954,9 +958,9 @@ public class GradientDrawable extends Drawable {

                    mGradientRadius = radius;

                    if (radius == 0) {
                        // We can't have a shader with zero radius, so let's
                        // have a very, very small radius.
                    if (radius <= 0) {
                        // We can't have a shader with non-positive radius, so
                        // let's have a very, very small radius.
                        radius = 0.001f;
                    }