Skip to content

Commit 4dac4ab

Browse files
committed
[Refactor] Add annotations and final wherever possible.
1 parent ad68678 commit 4dac4ab

23 files changed

+285
-123
lines changed

library/src/main/java/me/zhanghai/android/materialprogressbar/AnimationScaleIndeterminateCircularProgressDrawable.java

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public void setUseIntrinsicPadding(boolean useIntrinsicPadding) {
2727
getIntrinsicPaddingDrawable().setUseIntrinsicPadding(useIntrinsicPadding);
2828
}
2929

30+
@NonNull
3031
private IntrinsicPaddingDrawable getIntrinsicPaddingDrawable() {
3132
return (IntrinsicPaddingDrawable) getCurrent();
3233
}

library/src/main/java/me/zhanghai/android/materialprogressbar/Animators.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.annotation.SuppressLint;
1313
import android.graphics.Path;
1414

15+
import androidx.annotation.NonNull;
1516
import me.zhanghai.android.materialprogressbar.internal.ObjectAnimatorCompat;
1617

1718
/**
@@ -81,7 +82,8 @@ private Animators() {}
8182
* @param target The object whose properties are to be animated.
8283
* @return An Animator object that is set up to behave the same as the its native counterpart.
8384
*/
84-
public static Animator createIndeterminateHorizontalRect1(Object target) {
85+
@NonNull
86+
public static Animator createIndeterminateHorizontalRect1(@NonNull Object target) {
8587

8688
ObjectAnimator translateXAnimator = ObjectAnimatorCompat.ofFloat(target, "translateX", null,
8789
PATH_INDETERMINATE_HORIZONTAL_RECT1_TRANSLATE_X);
@@ -109,7 +111,8 @@ public static Animator createIndeterminateHorizontalRect1(Object target) {
109111
* @param target The object whose properties are to be animated.
110112
* @return An Animator object that is set up to behave the same as the its native counterpart.
111113
*/
112-
public static Animator createIndeterminateHorizontalRect2(Object target) {
114+
@NonNull
115+
public static Animator createIndeterminateHorizontalRect2(@NonNull Object target) {
113116

114117
ObjectAnimator translateXAnimator = ObjectAnimatorCompat.ofFloat(target, "translateX", null,
115118
PATH_INDETERMINATE_HORIZONTAL_RECT2_TRANSLATE_X);
@@ -136,7 +139,8 @@ public static Animator createIndeterminateHorizontalRect2(Object target) {
136139
* @param target The object whose properties are to be animated.
137140
* @return An Animator object that is set up to behave the same as the its native counterpart.
138141
*/
139-
public static Animator createIndeterminate(Object target) {
142+
@NonNull
143+
public static Animator createIndeterminate(@NonNull Object target) {
140144

141145
@SuppressLint("ObjectAnimatorBinding")
142146
ObjectAnimator trimPathStartAnimator = ObjectAnimator.ofFloat(target, "trimPathStart", 0,
@@ -172,7 +176,8 @@ public static Animator createIndeterminate(Object target) {
172176
* @param target The object whose properties are to be animated.
173177
* @return An Animator object that is set up to behave the same as the its native counterpart.
174178
*/
175-
public static Animator createIndeterminateRotation(Object target) {
179+
@NonNull
180+
public static Animator createIndeterminateRotation(@NonNull Object target) {
176181
@SuppressLint("ObjectAnimatorBinding")
177182
ObjectAnimator rotationAnimator = ObjectAnimator.ofFloat(target, "rotation", 0, 720);
178183
rotationAnimator.setDuration(6665);

library/src/main/java/me/zhanghai/android/materialprogressbar/BaseDrawable.java

+17-6
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,27 @@
1616
import android.graphics.drawable.Drawable;
1717

1818
import androidx.annotation.ColorInt;
19+
import androidx.annotation.IntRange;
1920
import androidx.annotation.NonNull;
2021
import androidx.annotation.Nullable;
2122

2223
abstract class BaseDrawable extends Drawable implements TintableDrawable {
2324

24-
protected int mAlpha = 0xFF;
25+
@IntRange(from = 0, to = 255)
26+
protected int mAlpha = 255;
27+
@Nullable
2528
protected ColorFilter mColorFilter;
29+
@Nullable
2630
protected ColorStateList mTintList;
31+
@NonNull
2732
protected PorterDuff.Mode mTintMode = PorterDuff.Mode.SRC_IN;
33+
@Nullable
2834
protected PorterDuffColorFilter mTintFilter;
2935

30-
private DummyConstantState mConstantState = new DummyConstantState();
36+
@NonNull
37+
private final DummyConstantState mConstantState = new DummyConstantState();
3138

39+
@IntRange(from = 0, to = 255)
3240
@Override
3341
public int getAlpha() {
3442
return mAlpha;
@@ -38,7 +46,7 @@ public int getAlpha() {
3846
* {@inheritDoc}
3947
*/
4048
@Override
41-
public void setAlpha(int alpha) {
49+
public void setAlpha(@IntRange(from = 0, to = 255) int alpha) {
4250
if (mAlpha != alpha) {
4351
mAlpha = alpha;
4452
invalidateSelf();
@@ -48,6 +56,7 @@ public void setAlpha(int alpha) {
4856
/**
4957
* {@inheritDoc}
5058
*/
59+
@Nullable
5160
@Override
5261
public ColorFilter getColorFilter() {
5362
return mColorFilter;
@@ -98,7 +107,7 @@ public boolean isStateful() {
98107
}
99108

100109
@Override
101-
protected boolean onStateChange(int[] state) {
110+
protected boolean onStateChange(@NonNull int[] state) {
102111
return updateTintFilter();
103112
}
104113

@@ -129,7 +138,7 @@ public int getOpacity() {
129138
* {@inheritDoc}
130139
*/
131140
@Override
132-
public void draw(Canvas canvas) {
141+
public void draw(@NonNull Canvas canvas) {
133142

134143
Rect bounds = getBounds();
135144
if (bounds.width() == 0 || bounds.height() == 0) {
@@ -142,17 +151,19 @@ public void draw(Canvas canvas) {
142151
canvas.restoreToCount(saveCount);
143152
}
144153

154+
@Nullable
145155
protected ColorFilter getColorFilterForDrawing() {
146156
return mColorFilter != null ? mColorFilter : mTintFilter;
147157
}
148158

149-
protected abstract void onDraw(Canvas canvas, int width, int height);
159+
protected abstract void onDraw(@NonNull Canvas canvas, int width, int height);
150160

151161
// Workaround LayerDrawable.ChildDrawable which calls getConstantState().newDrawable()
152162
// without checking for null.
153163
// We are never inflated from XML so the protocol of ConstantState does not apply to us. In
154164
// order to make LayerDrawable happy, we return ourselves from DummyConstantState.newDrawable().
155165

166+
@NonNull
156167
@Override
157168
public ConstantState getConstantState() {
158169
return mConstantState;

library/src/main/java/me/zhanghai/android/materialprogressbar/BaseIndeterminateProgressDrawable.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,17 @@
1212
import android.graphics.Color;
1313
import android.graphics.drawable.Animatable;
1414

15+
import androidx.annotation.NonNull;
1516
import me.zhanghai.android.materialprogressbar.internal.ThemeUtils;
1617

1718
abstract class BaseIndeterminateProgressDrawable extends BaseProgressDrawable
1819
implements Animatable {
1920

21+
@NonNull
2022
protected Animator[] mAnimators;
2123

2224
@SuppressLint("NewApi")
23-
public BaseIndeterminateProgressDrawable(Context context) {
25+
public BaseIndeterminateProgressDrawable(@NonNull Context context) {
2426
int controlActivatedColor = ThemeUtils.getColorFromAttrRes(R.attr.colorControlActivated,
2527
Color.BLACK, context);
2628
// setTint() has been overridden for compatibility; DrawableCompat won't work because
@@ -32,7 +34,7 @@ public BaseIndeterminateProgressDrawable(Context context) {
3234
* {@inheritDoc}
3335
*/
3436
@Override
35-
public void draw(Canvas canvas) {
37+
public void draw(@NonNull Canvas canvas) {
3638
super.draw(canvas);
3739

3840
if (isStarted()) {

library/src/main/java/me/zhanghai/android/materialprogressbar/BasePaintDrawable.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,16 @@
99
import android.graphics.Color;
1010
import android.graphics.Paint;
1111

12+
import androidx.annotation.NonNull;
13+
import androidx.annotation.Nullable;
14+
1215
abstract class BasePaintDrawable extends BaseDrawable {
1316

17+
@Nullable
1418
private Paint mPaint;
1519

1620
@Override
17-
protected final void onDraw(Canvas canvas, int width, int height) {
21+
protected final void onDraw(@NonNull Canvas canvas, int width, int height) {
1822

1923
if (mPaint == null) {
2024
mPaint = new Paint();
@@ -28,7 +32,8 @@ protected final void onDraw(Canvas canvas, int width, int height) {
2832
onDraw(canvas, width, height, mPaint);
2933
}
3034

31-
protected abstract void onPreparePaint(Paint paint);
35+
protected abstract void onPreparePaint(@NonNull Paint paint);
3236

33-
protected abstract void onDraw(Canvas canvas, int width, int height, Paint paint);
37+
protected abstract void onDraw(@NonNull Canvas canvas, int width, int height,
38+
@NonNull Paint paint);
3439
}

library/src/main/java/me/zhanghai/android/materialprogressbar/BaseProgressLayerDrawable.java

+10-5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import android.util.Log;
1616

1717
import androidx.annotation.ColorInt;
18+
import androidx.annotation.FloatRange;
1819
import androidx.annotation.NonNull;
1920
import androidx.annotation.Nullable;
2021
import androidx.core.graphics.ColorUtils;
@@ -27,13 +28,17 @@ class BaseProgressLayerDrawable<
2728
extends LayerDrawable implements IntrinsicPaddingDrawable, MaterialProgressDrawable,
2829
ShowBackgroundDrawable, TintableDrawable {
2930

31+
@FloatRange(from = 0, to = 1)
3032
private float mBackgroundAlpha;
3133

32-
private BackgroundDrawableType mBackgroundDrawable;
33-
private ProgressDrawableType mSecondaryProgressDrawable;
34-
private ProgressDrawableType mProgressDrawable;
34+
@NonNull
35+
private final BackgroundDrawableType mBackgroundDrawable;
36+
@NonNull
37+
private final ProgressDrawableType mSecondaryProgressDrawable;
38+
@NonNull
39+
private final ProgressDrawableType mProgressDrawable;
3540

36-
public BaseProgressLayerDrawable(Drawable[] layers, Context context) {
41+
public BaseProgressLayerDrawable(@NonNull Drawable[] layers, @NonNull Context context) {
3742
super(layers);
3843

3944
mBackgroundAlpha = ThemeUtils.getFloatFromAttrRes(android.R.attr.disabledAlpha, 0, context);
@@ -116,7 +121,7 @@ public void setTintList(@Nullable ColorStateList tint) {
116121
Log.w(getClass().getSimpleName(), "setTintList() called with a non-opaque" +
117122
" ColorStateList, its original alpha will be discarded");
118123
}
119-
backgroundTint = tint.withAlpha(Math.round(0xFF * mBackgroundAlpha));
124+
backgroundTint = tint.withAlpha(Math.round(mBackgroundAlpha * 255));
120125
} else {
121126
backgroundTint = null;
122127
}

library/src/main/java/me/zhanghai/android/materialprogressbar/BaseSingleCircularProgressDrawable.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,22 @@
99
import android.graphics.Paint;
1010
import android.graphics.RectF;
1111

12+
import androidx.annotation.NonNull;
13+
1214
abstract class BaseSingleCircularProgressDrawable extends BaseProgressDrawable {
1315

1416
private static final RectF RECT_BOUND = new RectF(-21, -21, 21, 21);
1517
private static final RectF RECT_PADDED_BOUND = new RectF(-24, -24, 24, 24);
1618
private static final RectF RECT_PROGRESS = new RectF(-19, -19, 19, 19);
1719

1820
@Override
19-
protected void onPreparePaint(Paint paint) {
21+
protected void onPreparePaint(@NonNull Paint paint) {
2022
paint.setStyle(Paint.Style.STROKE);
2123
paint.setStrokeWidth(4);
2224
}
2325

2426
@Override
25-
protected void onDraw(Canvas canvas, int width, int height, Paint paint) {
27+
protected void onDraw(@NonNull Canvas canvas, int width, int height, @NonNull Paint paint) {
2628

2729
if (mUseIntrinsicPadding) {
2830
canvas.scale(width / RECT_PADDED_BOUND.width(), height / RECT_PADDED_BOUND.height());
@@ -35,9 +37,10 @@ protected void onDraw(Canvas canvas, int width, int height, Paint paint) {
3537
onDrawRing(canvas, paint);
3638
}
3739

38-
protected abstract void onDrawRing(Canvas canvas, Paint paint);
40+
protected abstract void onDrawRing(@NonNull Canvas canvas, @NonNull Paint paint);
3941

40-
protected void drawRing(Canvas canvas, Paint paint, float startAngle, float sweepAngle) {
42+
protected void drawRing(@NonNull Canvas canvas, @NonNull Paint paint, float startAngle,
43+
float sweepAngle) {
4144
// startAngle starts at 3 o'clock on a watch.
4245
canvas.drawArc(RECT_PROGRESS, -90 + startAngle, sweepAngle, false, paint);
4346
}

library/src/main/java/me/zhanghai/android/materialprogressbar/BaseSingleHorizontalProgressDrawable.java

+12-3
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,32 @@
1010
import android.graphics.Paint;
1111
import android.graphics.RectF;
1212

13+
import androidx.annotation.Dimension;
14+
import androidx.annotation.NonNull;
15+
import androidx.annotation.Px;
16+
1317
class BaseSingleHorizontalProgressDrawable extends BaseProgressDrawable {
1418

19+
@Dimension(unit = Dimension.DP)
1520
private static final int PROGRESS_INTRINSIC_HEIGHT_DP = 4;
21+
@Dimension(unit = Dimension.DP)
1622
private static final int PADDED_INTRINSIC_HEIGHT_DP = 16;
1723
protected static final RectF RECT_BOUND = new RectF(-180, -1, 180, 1);
1824
private static final RectF RECT_PADDED_BOUND = new RectF(-180, -4, 180, 4);
1925

20-
private int mProgressIntrinsicHeight;
21-
private int mPaddedIntrinsicHeight;
26+
@Px
27+
private final int mProgressIntrinsicHeight;
28+
@Px
29+
private final int mPaddedIntrinsicHeight;
2230

23-
public BaseSingleHorizontalProgressDrawable(Context context) {
31+
public BaseSingleHorizontalProgressDrawable(@NonNull Context context) {
2432
float density = context.getResources().getDisplayMetrics().density;
2533
mProgressIntrinsicHeight = Math.round(PROGRESS_INTRINSIC_HEIGHT_DP * density);
2634
mPaddedIntrinsicHeight = Math.round(PADDED_INTRINSIC_HEIGHT_DP * density);
2735
}
2836

2937
@Override
38+
@Px
3039
public int getIntrinsicHeight() {
3140
return mUseIntrinsicPadding ? mPaddedIntrinsicHeight : mProgressIntrinsicHeight;
3241
}

library/src/main/java/me/zhanghai/android/materialprogressbar/CircularProgressBackgroundDrawable.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import android.graphics.Canvas;
99
import android.graphics.Paint;
1010

11+
import androidx.annotation.NonNull;
12+
1113
class CircularProgressBackgroundDrawable extends BaseSingleCircularProgressDrawable
1214
implements ShowBackgroundDrawable {
1315

@@ -27,14 +29,14 @@ public void setShowBackground(boolean show) {
2729
}
2830

2931
@Override
30-
public void draw(Canvas canvas) {
32+
public void draw(@NonNull Canvas canvas) {
3133
if (mShow) {
3234
super.draw(canvas);
3335
}
3436
}
3537

3638
@Override
37-
protected void onDrawRing(Canvas canvas, Paint paint) {
39+
protected void onDrawRing(@NonNull Canvas canvas, @NonNull Paint paint) {
3840
drawRing(canvas, paint, 0, 360);
3941
}
4042
}

library/src/main/java/me/zhanghai/android/materialprogressbar/CircularProgressDrawable.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import android.content.Context;
99
import android.graphics.drawable.Drawable;
1010

11+
import androidx.annotation.NonNull;
12+
1113
/**
1214
* A new {@code Drawable} for determinate circular {@code ProgressBar}.
1315
*/
@@ -19,7 +21,7 @@ public class CircularProgressDrawable extends BaseProgressLayerDrawable<
1921
*
2022
* @param context the {@code Context} for retrieving style information.
2123
*/
22-
public CircularProgressDrawable(int style, Context context) {
24+
public CircularProgressDrawable(int style, @NonNull Context context) {
2325
super(new Drawable[] {
2426
new CircularProgressBackgroundDrawable(),
2527
new SingleCircularProgressDrawable(style),

library/src/main/java/me/zhanghai/android/materialprogressbar/HorizontalProgressBackgroundDrawable.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
import android.content.Context;
99
import android.graphics.Canvas;
1010

11+
import androidx.annotation.NonNull;
12+
1113
class HorizontalProgressBackgroundDrawable extends BaseSingleHorizontalProgressDrawable
1214
implements ShowBackgroundDrawable {
1315

1416
private boolean mShow = true;
1517

16-
public HorizontalProgressBackgroundDrawable(Context context) {
18+
public HorizontalProgressBackgroundDrawable(@NonNull Context context) {
1719
super(context);
1820
}
1921

@@ -31,7 +33,7 @@ public void setShowBackground(boolean show) {
3133
}
3234

3335
@Override
34-
public void draw(Canvas canvas) {
36+
public void draw(@NonNull Canvas canvas) {
3537
if (mShow) {
3638
super.draw(canvas);
3739
}

library/src/main/java/me/zhanghai/android/materialprogressbar/HorizontalProgressDrawable.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import android.content.Context;
99
import android.graphics.drawable.Drawable;
1010

11+
import androidx.annotation.NonNull;
12+
1113
/**
1214
* A backported {@code Drawable} for determinate horizontal {@code ProgressBar}.
1315
*/
@@ -19,7 +21,7 @@ public class HorizontalProgressDrawable extends BaseProgressLayerDrawable<
1921
*
2022
* @param context the {@code Context} for retrieving style information.
2123
*/
22-
public HorizontalProgressDrawable(Context context) {
24+
public HorizontalProgressDrawable(@NonNull Context context) {
2325
super(new Drawable[] {
2426
new HorizontalProgressBackgroundDrawable(context),
2527
new SingleHorizontalProgressDrawable(context),

0 commit comments

Comments
 (0)