diff --git a/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java b/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java index 9f604a2250b..8262572ba28 100644 --- a/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java +++ b/lib/java/com/google/android/material/progressindicator/LinearDrawingDelegate.java @@ -373,7 +373,8 @@ void drawStopIndicator( @IntRange(from = 0, to = 255) int drawableAlpha) { int paintColor = MaterialColors.compositeARGBWithAlpha(color, drawableAlpha); drawingDeterminateIndicator = false; - if (spec.trackStopIndicatorSize > 0 && paintColor != Color.TRANSPARENT) { + int trackStopIndicatorSize = spec.getActualTrackStopIndicatorSize(); + if (trackStopIndicatorSize > 0 && paintColor != Color.TRANSPARENT) { // Draws the stop indicator at the end of the track if needed. paint.setStyle(Style.FILL); paint.setColor(paintColor); @@ -386,9 +387,9 @@ void drawStopIndicator( paint, new PathPoint( new float[] {trackLength / 2 - stopIndicatorCenterX, 0}, new float[] {1, 0}), - spec.trackStopIndicatorSize, - spec.trackStopIndicatorSize, - displayedCornerRadius * spec.trackStopIndicatorSize / displayedTrackThickness); + trackStopIndicatorSize, + trackStopIndicatorSize, + displayedCornerRadius * trackStopIndicatorSize / displayedTrackThickness); } } diff --git a/lib/java/com/google/android/material/progressindicator/LinearProgressIndicator.java b/lib/java/com/google/android/material/progressindicator/LinearProgressIndicator.java index cc1cffdb742..9351e0652bc 100644 --- a/lib/java/com/google/android/material/progressindicator/LinearProgressIndicator.java +++ b/lib/java/com/google/android/material/progressindicator/LinearProgressIndicator.java @@ -244,7 +244,7 @@ public int getTrackStopIndicatorSize() { */ public void setTrackStopIndicatorSize(@Px int trackStopIndicatorSize) { if (spec.trackStopIndicatorSize != trackStopIndicatorSize) { - spec.trackStopIndicatorSize = min(trackStopIndicatorSize, spec.trackThickness); + spec.trackStopIndicatorSize = trackStopIndicatorSize; spec.validateSpec(); invalidate(); } diff --git a/lib/java/com/google/android/material/progressindicator/LinearProgressIndicatorSpec.java b/lib/java/com/google/android/material/progressindicator/LinearProgressIndicatorSpec.java index d9e77e83f0c..89852773819 100644 --- a/lib/java/com/google/android/material/progressindicator/LinearProgressIndicatorSpec.java +++ b/lib/java/com/google/android/material/progressindicator/LinearProgressIndicatorSpec.java @@ -48,7 +48,7 @@ public final class LinearProgressIndicatorSpec extends BaseProgressIndicatorSpec boolean drawHorizontallyInverse; - /** The size of the stop indicator at the end of the track. */ + /** The desired size of the stop indicator at the end of the track. */ @Px public int trackStopIndicatorSize; /** The padding of the stop indicator at the end of the track. */ @@ -102,9 +102,7 @@ public LinearProgressIndicatorSpec( R.styleable.LinearProgressIndicator_indicatorDirectionLinear, LinearProgressIndicator.INDICATOR_DIRECTION_LEFT_TO_RIGHT); trackStopIndicatorSize = - min( - a.getDimensionPixelSize(R.styleable.LinearProgressIndicator_trackStopIndicatorSize, 0), - trackThickness); + a.getDimensionPixelSize(R.styleable.LinearProgressIndicator_trackStopIndicatorSize, 0); if (a.hasValue(R.styleable.LinearProgressIndicator_trackStopIndicatorPadding)) { trackStopIndicatorPadding = a.getDimensionPixelSize(R.styleable.LinearProgressIndicator_trackStopIndicatorPadding, 0); @@ -143,6 +141,11 @@ public int getTrackInnerCornerRadiusInPx() { : trackInnerCornerRadius; } + @Px + int getActualTrackStopIndicatorSize() { + return min(trackStopIndicatorSize, trackThickness); + } + @Override public boolean useStrokeCap() { return super.useStrokeCap() && getTrackInnerCornerRadiusInPx() == getTrackCornerRadiusInPx();