Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1712)

Unified Diff: third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java

Issue 894193005: [Android] Use the platform SwipeRefreshLayout (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java
diff --git a/third_party/android_swipe_refresh/java/src/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java b/third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java
similarity index 96%
rename from third_party/android_swipe_refresh/java/src/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java
rename to third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java
index 2b29444f7c9f0baaea4c23d3bbac12fff0866824..23a6a37dcbb0d796d2f1930ca390537768c31a5f 100644
--- a/third_party/android_swipe_refresh/java/src/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java
+++ b/third_party/android_swipe_refresh/java/src/org/chromium/third_party/android/swiperefresh/MaterialProgressDrawable.java
@@ -35,8 +35,6 @@ import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Animatable;
-import android.support.annotation.IntDef;
-import android.support.annotation.NonNull;
import android.util.DisplayMetrics;
import android.view.View;
@@ -56,7 +54,6 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
private static final Interpolator EASE_INTERPOLATOR = new AccelerateDecelerateInterpolator();
@Retention(RetentionPolicy.CLASS)
- @IntDef({LARGE, DEFAULT})
public @interface ProgressDrawableSize {}
// Maps to ProgressBar.Large style
static final int LARGE = 0;
@@ -215,13 +212,25 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
return (int) mWidth;
}
+ private static boolean isLayoutRtl(View view) {
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
+ return view.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+ } else {
+ // All layouts are LTR before JB MR1.
+ return false;
+ }
+ }
+
@Override
public void draw(Canvas c) {
+ final boolean mirrorX = isLayoutRtl(mParent);
final Rect bounds = getBounds();
final int saveCount = c.save();
+ if (mirrorX) c.scale(-1.f, 1.f);
c.rotate(mRotation, bounds.exactCenterX(), bounds.exactCenterY());
mRing.draw(c, bounds);
c.restoreToCount(saveCount);
+ if (mirrorX) c.scale(-1.f, 1.f);
}
@Override
@@ -358,7 +367,7 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
setRotation(groupRotation);
}
};
- animation.setRepeatCount(Animation.INFINITE);
+ animation.setRepeatCount(10);
animation.setRepeatMode(Animation.RESTART);
animation.setInterpolator(LINEAR_INTERPOLATOR);
animation.setDuration(ANIMATION_DURATION);
@@ -480,7 +489,7 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
if (mAlpha < 255) {
mCirclePaint.setColor(mBackgroundColor);
mCirclePaint.setAlpha(255 - mAlpha);
- c.drawCircle(bounds.exactCenterX(), bounds.exactCenterY(), bounds.width() / 2,
+ c.drawCircle(bounds.exactCenterX(), bounds.exactCenterY(), bounds.width() / 2f,
mCirclePaint);
}
}
@@ -496,7 +505,7 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
// Adjust the position of the triangle so that it is inset as
// much as the arc, but also centered on the arc.
- float inset = (int) mStrokeInset / 2 * mArrowScale;
+ float inset = (int) mStrokeInset / 2f * mArrowScale;
float x = (float) (mRingCenterRadius * Math.cos(0) + bounds.exactCenterX());
float y = (float) (mRingCenterRadius * Math.sin(0) + bounds.exactCenterY());
@@ -506,8 +515,7 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
// been fixed as of API 21.
mArrow.moveTo(0, 0);
mArrow.lineTo(mArrowWidth * mArrowScale, 0);
- mArrow.lineTo((mArrowWidth * mArrowScale / 2), (mArrowHeight
- * mArrowScale));
+ mArrow.lineTo((mArrowWidth * mArrowScale / 2f), (mArrowHeight * mArrowScale));
mArrow.offset(x - inset, y);
mArrow.close();
// draw a triangle
@@ -523,7 +531,7 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
*
* @param colors Array of integers describing the colors. Must be non-<code>null</code>.
*/
- public void setColors(@NonNull int[] colors) {
+ public void setColors(int[] colors) {
mColors = colors;
// if colors are reset, make sure to reset the color index as well
setColorIndex(0);
@@ -554,7 +562,10 @@ class MaterialProgressDrawable extends Drawable implements Animatable {
* @param alpha Set the alpha of the progress spinner and associated arrowhead.
*/
public void setAlpha(int alpha) {
- mAlpha = alpha;
+ if (mAlpha != alpha) {
+ mAlpha = alpha;
+ invalidateSelf();
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698