diff --git a/build.gradle b/build.gradle
index ac4cc75..6092c65 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.1'
+ classpath 'com.android.tools.build:gradle:3.6.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index c844430..1b39aeb 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sun Feb 24 16:53:08 PST 2019
+#Fri Jul 03 13:57:12 EDT 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
diff --git a/library/build.gradle b/library/build.gradle
index f89e7b3..b6cffae 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -22,8 +22,8 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'androidx.appcompat:appcompat:1.0.2'
- implementation 'androidx.annotation:annotation:1.0.1'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation 'androidx.annotation:annotation:1.1.0'
}
apply from: '../gradle-mvn-push.gradle'
diff --git a/library/src/main/java/me/zhanghai/android/materialprogressbar/IndeterminateHorizontalProgressDrawable.java b/library/src/main/java/me/zhanghai/android/materialprogressbar/IndeterminateHorizontalProgressDrawable.java
index 8c1d287..7fdc22a 100644
--- a/library/src/main/java/me/zhanghai/android/materialprogressbar/IndeterminateHorizontalProgressDrawable.java
+++ b/library/src/main/java/me/zhanghai/android/materialprogressbar/IndeterminateHorizontalProgressDrawable.java
@@ -7,6 +7,7 @@
import android.animation.Animator;
import android.content.Context;
+import android.content.res.ColorStateList;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
@@ -16,6 +17,7 @@
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import androidx.annotation.Px;
+
import me.zhanghai.android.materialprogressbar.internal.ThemeUtils;
/**
@@ -48,6 +50,8 @@ public class IndeterminateHorizontalProgressDrawable extends BaseIndeterminatePr
@NonNull
private final RectTransformX mRect2TransformX = new RectTransformX(RECT_2_TRANSFORM_X);
+ private ColorStateList mBackgroundTintList;
+
/**
* Create a new {@code IndeterminateHorizontalProgressDrawable}.
*
@@ -62,7 +66,7 @@ public IndeterminateHorizontalProgressDrawable(@NonNull Context context) {
mBackgroundAlpha = ThemeUtils.getFloatFromAttrRes(android.R.attr.disabledAlpha, 0, context);
- mAnimators = new Animator[] {
+ mAnimators = new Animator[]{
Animators.createIndeterminateHorizontalRect1(mRect1TransformX),
Animators.createIndeterminateHorizontalRect2(mRect2TransformX)
};
@@ -76,6 +80,10 @@ public boolean getShowBackground() {
return mShowBackground;
}
+ public void setBackgroundTintList(ColorStateList tintList) {
+ mBackgroundTintList = tintList;
+ }
+
/**
* {@inheritDoc}
*/
@@ -113,9 +121,15 @@ protected void onDraw(Canvas canvas, int width, int height, Paint paint) {
}
if (mShowBackground) {
- paint.setAlpha(Math.round(mAlpha * mBackgroundAlpha));
- drawBackgroundRect(canvas, paint);
- paint.setAlpha(mAlpha);
+ if (mBackgroundTintList == null) {
+ paint.setAlpha(Math.round(mAlpha * mBackgroundAlpha));
+ drawBackgroundRect(canvas, paint);
+ paint.setAlpha(mAlpha);
+ } else {
+ Paint backgroundPaint = new Paint();
+ backgroundPaint.setColor(mBackgroundTintList.getDefaultColor());
+ drawBackgroundRect(canvas, backgroundPaint);
+ }
}
drawProgressRect(canvas, mRect2TransformX, paint);
drawProgressRect(canvas, mRect1TransformX, paint);
diff --git a/library/src/main/java/me/zhanghai/android/materialprogressbar/MaterialProgressBar.java b/library/src/main/java/me/zhanghai/android/materialprogressbar/MaterialProgressBar.java
index 14af304..31a27ef 100644
--- a/library/src/main/java/me/zhanghai/android/materialprogressbar/MaterialProgressBar.java
+++ b/library/src/main/java/me/zhanghai/android/materialprogressbar/MaterialProgressBar.java
@@ -20,6 +20,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.TintTypedArray;
+
import me.zhanghai.android.materialprogressbar.internal.DrawableCompat;
/**
@@ -122,6 +123,11 @@ private void init(@Nullable AttributeSet attrs, int defStyleAttr, int defStyleRe
R.styleable.MaterialProgressBar_mpb_indeterminateTint);
mProgressTintInfo.mHasIndeterminateTint = true;
}
+ if (a.hasValue(R.styleable.MaterialProgressBar_mpb_indeterminateBackgroundTint)) {
+ mProgressTintInfo.mIndeterminateBackgroundTint = a.getColorStateList(
+ R.styleable.MaterialProgressBar_mpb_indeterminateBackgroundTint);
+ mProgressTintInfo.mHasIndeterminateBackgroundTint = true;
+ }
if (a.hasValue(R.styleable.MaterialProgressBar_mpb_indeterminateTintMode)) {
mProgressTintInfo.mIndeterminateTintMode = DrawableCompat.parseTintMode(a.getInt(
R.styleable.MaterialProgressBar_mpb_indeterminateTintMode, -1), null);
@@ -212,7 +218,7 @@ public Drawable getCurrentDrawable() {
* Get whether the current drawable is using an intrinsic padding. The default is {@code true}.
*
* @return Whether the current drawable is using an intrinsic padding, or {@code false} if the
- * drawable does not implement {@link IntrinsicPaddingDrawable}.
+ * drawable does not implement {@link IntrinsicPaddingDrawable}.
*/
public boolean getUseIntrinsicPadding() {
Drawable drawable = getCurrentDrawable();
@@ -247,7 +253,7 @@ public void setUseIntrinsicPadding(boolean useIntrinsicPadding) {
* Get whether the current drawable is showing a background. The default is {@code true}.
*
* @return Whether the current drawable is showing a background, or {@code false} if the
- * drawable does not implement {@link ShowBackgroundDrawable}.
+ * drawable does not implement {@link ShowBackgroundDrawable}.
*/
public boolean getShowProgressBackground() {
Drawable drawable = getCurrentDrawable();
@@ -430,6 +436,26 @@ public void setIndeterminateTintList(@Nullable ColorStateList tint) {
setSupportIndeterminateTintList(tint);
}
+ /**
+ * Get the indeterminate progress bar background {@link ColorStateList}.
+ */
+ public ColorStateList getIndeterminateBackgroundTintList() {
+ logProgressBarTintWarning();
+ return mProgressTintInfo.mIndeterminateBackgroundTint;
+ }
+
+ /**
+ * Set the indeterminate progress bar background {@link ColorStateList}.
+ */
+ public void setIndeterminateBackgroundTintList(@Nullable ColorStateList tint) {
+ logProgressBarTintWarning();
+
+ mProgressTintInfo.mIndeterminateBackgroundTint = tint;
+ mProgressTintInfo.mHasIndeterminateBackgroundTint = true;
+
+ applyIndeterminateTint();
+ }
+
/**
* @deprecated Use {@link #getSupportIndeterminateTintMode()} instead.
*/
@@ -674,26 +700,40 @@ private Drawable getTintTargetFromProgressDrawable(int layerId, boolean shouldFa
private void applyIndeterminateTint() {
Drawable indeterminateDrawable = getIndeterminateDrawable();
+
if (indeterminateDrawable == null) {
return;
}
+
if (mProgressTintInfo.mHasIndeterminateTint
|| mProgressTintInfo.mHasIndeterminateTintMode) {
indeterminateDrawable.mutate();
- applyTintForDrawable(indeterminateDrawable, mProgressTintInfo.mIndeterminateTint,
- mProgressTintInfo.mHasIndeterminateTint,
- mProgressTintInfo.mIndeterminateTintMode,
- mProgressTintInfo.mHasIndeterminateTintMode);
+ applyTintForDrawable(
+ indeterminateDrawable
+ , mProgressTintInfo.mIndeterminateTint
+ , mProgressTintInfo.mHasIndeterminateTint
+ , mProgressTintInfo.mIndeterminateTintMode
+ , mProgressTintInfo.mHasIndeterminateTintMode
+ );
+ }
+
+ if (mProgressTintInfo.mHasIndeterminateBackgroundTint) {
+ ((IndeterminateHorizontalProgressDrawable) indeterminateDrawable).setBackgroundTintList(
+ mProgressTintInfo.mIndeterminateBackgroundTint
+ );
}
}
// Progress drawables in this library has already rewritten tint related methods for
// compatibility.
@SuppressLint("NewApi")
- private void applyTintForDrawable(@NonNull Drawable drawable, @Nullable ColorStateList tint,
- boolean hasTint, @Nullable PorterDuff.Mode tintMode,
- boolean hasTintMode) {
-
+ private void applyTintForDrawable(
+ @NonNull Drawable drawable
+ , @Nullable ColorStateList tint
+ , boolean hasTint
+ , @Nullable PorterDuff.Mode tintMode
+ , boolean hasTintMode
+ ) {
if (hasTint || hasTintMode) {
if (hasTint) {
@@ -759,8 +799,11 @@ private static class TintInfo {
@Nullable
public ColorStateList mIndeterminateTint;
@Nullable
+ public ColorStateList mIndeterminateBackgroundTint;
+ @Nullable
public PorterDuff.Mode mIndeterminateTintMode;
public boolean mHasIndeterminateTint;
+ public boolean mHasIndeterminateBackgroundTint;
public boolean mHasIndeterminateTintMode;
}
}
diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml
index f8700e5..5654a91 100644
--- a/library/src/main/res/values/attrs.xml
+++ b/library/src/main/res/values/attrs.xml
@@ -66,6 +66,7 @@
+
diff --git a/sample/build.gradle b/sample/build.gradle
index 2b475b5..21d2e4d 100644
--- a/sample/build.gradle
+++ b/sample/build.gradle
@@ -30,12 +30,18 @@ android {
signingConfig signingConfigs.release
}
}
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'androidx.appcompat:appcompat:1.0.2'
- implementation 'com.jakewharton:butterknife:9.0.0-rc1'
- annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation 'com.jakewharton:butterknife:10.1.0'
+ annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
+
implementation project(':library')
}
diff --git a/sample/src/main/res/layout/main_activity.xml b/sample/src/main/res/layout/main_activity.xml
index 0a97e6a..d51b9bb 100644
--- a/sample/src/main/res/layout/main_activity.xml
+++ b/sample/src/main/res/layout/main_activity.xml
@@ -119,6 +119,7 @@
android:indeterminate="true"
app:mpb_progressStyle="horizontal"
app:mpb_indeterminateTint="@color/tint"
+ app:mpb_indeterminateBackgroundTint="@color/tint_background"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" />