From c7041a9e709d51f9223f1fd1f47a4c84068739ee Mon Sep 17 00:00:00 2001 From: Rhony Abdullah Siagian Date: Sun, 13 Nov 2016 20:32:03 +0700 Subject: [PATCH] add repeatMode attribute --- .../materialprogressbar/MaterialProgressBar.java | 12 ++++++------ app/src/main/res/layout/activity_main.xml | 3 ++- app/src/main/res/values/attrs.xml | 6 +++++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/chaos/customview/materialprogressbar/MaterialProgressBar.java b/app/src/main/java/com/chaos/customview/materialprogressbar/MaterialProgressBar.java index f49d64c..b61dc06 100644 --- a/app/src/main/java/com/chaos/customview/materialprogressbar/MaterialProgressBar.java +++ b/app/src/main/java/com/chaos/customview/materialprogressbar/MaterialProgressBar.java @@ -5,7 +5,6 @@ import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; -import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Paint; import android.graphics.drawable.ClipDrawable; @@ -14,6 +13,7 @@ import android.graphics.drawable.ShapeDrawable; import android.support.annotation.ColorInt; import android.support.annotation.NonNull; +import android.support.v4.content.ContextCompat; import android.util.AttributeSet; import android.view.Gravity; import android.view.animation.AccelerateInterpolator; @@ -28,7 +28,7 @@ public class MaterialProgressBar extends ProgressBar { private Animator animator = null; - private final int duration; + private final int duration, repeatMode; public MaterialProgressBar(Context context) { this(context, null, -1); @@ -49,12 +49,12 @@ public MaterialProgressBar(Context context, AttributeSet attrs, int defStyleAttr progressColour = ta.getColor(R.styleable.MaterialProgressBar_progressColour, 0); int defaultDuration = context.getResources().getInteger(android.R.integer.config_mediumAnimTime); duration = ta.getInteger(R.styleable.MaterialProgressBar_duration, defaultDuration); + repeatMode = ta.getInteger(R.styleable.MaterialProgressBar_repeatMode, ValueAnimator.RESTART); } finally { ta.recycle(); } - Resources resources = context.getResources(); - //noinspection deprecation - setProgressDrawable(resources.getDrawable(android.R.drawable.progress_horizontal)); + + setProgressDrawable(ContextCompat.getDrawable(context, android.R.drawable.progress_horizontal)); createIndeterminateProgressDrawable(backgroundColour, progressColour); setMax(INDETERMINATE_MAX); super.setIndeterminate(false); @@ -115,7 +115,7 @@ private ObjectAnimator getAnimator(String propertyName, Interpolator interpolato ObjectAnimator progressAnimator = ObjectAnimator.ofInt(this, propertyName, 0, INDETERMINATE_MAX); progressAnimator.setInterpolator(interpolator); progressAnimator.setDuration(duration); - progressAnimator.setRepeatMode(ValueAnimator.RESTART); + progressAnimator.setRepeatMode(repeatMode); progressAnimator.setRepeatCount(ValueAnimator.INFINITE); return progressAnimator; } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index dbf1316..35ef387 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -17,7 +17,8 @@ android:visibility="visible" app:duration="2000" app:progressColour="@color/sa_accent" - app:backgroundColour="@color/sa_accent_transparent" /> + app:backgroundColour="@color/sa_accent_transparent" + app:repeatMode="restart"/> - + + + + +