diff --git a/lib/java/com/google/android/material/progressindicator/DrawableWithAnimatedVisibilityChange.java b/lib/java/com/google/android/material/progressindicator/DrawableWithAnimatedVisibilityChange.java index d82984d7a45..f6992aa3c93 100644 --- a/lib/java/com/google/android/material/progressindicator/DrawableWithAnimatedVisibilityChange.java +++ b/lib/java/com/google/android/material/progressindicator/DrawableWithAnimatedVisibilityChange.java @@ -451,15 +451,18 @@ float getPhaseFraction() { if (mockPhaseFraction > 0) { return mockPhaseFraction; } + float phaseFraction = 0f; - if (baseSpec.speed != 0) { + if (baseSpec.hasWavyEffect() && baseSpec.speed != 0) { float durationScale = animatorDurationScaleProvider.getSystemAnimatorDurationScale( context.getContentResolver()); - int cycleInMs = (int) (1000f * baseSpec.wavelength / baseSpec.speed * durationScale); - phaseFraction = (float) (System.currentTimeMillis() % cycleInMs) / cycleInMs; - if (phaseFraction < 0f) { - phaseFraction = (phaseFraction % 1) + 1f; + if (durationScale > 0f) { + int cycleInMs = (int) (1000f * baseSpec.wavelength / baseSpec.speed * durationScale); + phaseFraction = (float) (System.currentTimeMillis() % cycleInMs) / cycleInMs; + if (phaseFraction < 0f) { + phaseFraction = (phaseFraction % 1) + 1f; + } } } return phaseFraction;