@@ -95,7 +95,7 @@ interface STATUS {
95
95
96
96
97
97
private CircularProgressDrawable mLoadingDrawable ;
98
- private OnLoadingListener mOnLoadingListener ;
98
+ private OnStatusChangedListener mListener ;
99
99
private EndDrawable mEndDrawable ;
100
100
private int mLoadingSize ;
101
101
private int mLoadingPosition ;
@@ -135,7 +135,7 @@ private void init(Context context, AttributeSet attrs) {
135
135
int loadingDrawableSize = array .getDimensionPixelSize (R .styleable .LoadingButton_loadingEndDrawableSize , (int ) (enableShrink ? getTextSize () * 2 : getTextSize ()));
136
136
int loadingDrawableColor = array .getColor (R .styleable .LoadingButton_loadingDrawableColor , getTextColors ().getDefaultColor ());
137
137
int loadingDrawablePosition = array .getInt (R .styleable .LoadingButton_loadingDrawablePosition , POSITION .START );
138
- int endCompleteDrawableResId = array .getResourceId (R .styleable .LoadingButton_endCompleteDrawable , -1 );
138
+ int endSuccessDrawable = array .getResourceId (R .styleable .LoadingButton_endSuccessDrawable , -1 );
139
139
int endFailDrawableResId = array .getResourceId (R .styleable .LoadingButton_endFailDrawable , -1 );
140
140
int endDrawableAppearTime = array .getInt (R .styleable .LoadingButton_endDrawableAppearTime , EndDrawable .DEFAULT_APPEAR_DURATION );
141
141
int endDrawableDuration = array .getInt (R .styleable .LoadingButton_endDrawableDuration , 900 );
@@ -153,8 +153,8 @@ private void init(Context context, AttributeSet attrs) {
153
153
setEnableCenterDrawables (true );
154
154
155
155
//initLoadingDrawable
156
- if (endCompleteDrawableResId != -1 || endFailDrawableResId != -1 ) {
157
- mEndDrawable = new EndDrawable (endCompleteDrawableResId , endFailDrawableResId );
156
+ if (endSuccessDrawable != -1 || endFailDrawableResId != -1 ) {
157
+ mEndDrawable = new EndDrawable (endSuccessDrawable , endFailDrawableResId );
158
158
mEndDrawable .mAppearAnimator .setDuration (endDrawableAppearTime );
159
159
mEndDrawable .setKeepDuration (endDrawableDuration );
160
160
}
@@ -211,8 +211,8 @@ public void onAnimationStart(Animator animation) {
211
211
//begin shrink
212
212
curStatus = STATUS .SHRINKING ;
213
213
isSizeChanging = true ;
214
- if (mOnLoadingListener != null ) {
215
- mOnLoadingListener .onShrinking ();
214
+ if (mListener != null ) {
215
+ mListener .onShrinking ();
216
216
}
217
217
218
218
LoadingButton .super .setText ("" , BufferType .NORMAL );
@@ -224,8 +224,8 @@ public void onAnimationStart(Animator animation) {
224
224
//begin restore
225
225
stopLoading ();
226
226
curStatus = STATUS .RESTORING ;
227
- if (mOnLoadingListener != null ) {
228
- mOnLoadingListener .onRestoring ();
227
+ if (mListener != null ) {
228
+ mListener .onRestoring ();
229
229
}
230
230
231
231
}
@@ -244,8 +244,8 @@ public void onAnimationEnd(Animator animation) {
244
244
isSizeChanging = false ;
245
245
nextReverse = false ;
246
246
toIde ();
247
- if (mOnLoadingListener != null ) {
248
- mOnLoadingListener .onRestored ();
247
+ if (mListener != null ) {
248
+ mListener .onRestored ();
249
249
}
250
250
}
251
251
}
@@ -346,8 +346,8 @@ private void startLoading() {
346
346
mLoadingDrawable .start ();
347
347
}
348
348
349
- if (mOnLoadingListener != null ) {
350
- mOnLoadingListener .onLoadingStart ();
349
+ if (mListener != null ) {
350
+ mListener .onLoadingStart ();
351
351
}
352
352
}
353
353
@@ -357,8 +357,8 @@ private void startLoading() {
357
357
private void stopLoading () {
358
358
if (mLoadingDrawable .isRunning ()) {
359
359
mLoadingDrawable .stop ();
360
- if (mOnLoadingListener != null ) {
361
- mOnLoadingListener .onLoadingStop ();
360
+ if (mListener != null ) {
361
+ mListener .onLoadingStop ();
362
362
}
363
363
}
364
364
@@ -426,7 +426,7 @@ public void start() {
426
426
* 完成加载,显示对应的EndDrawable
427
427
* <p>
428
428
*
429
- * @param isSuccess 是否加载成功,将参数传递给回调{@link OnLoadingListener #onCompleted(boolean)} ()},
429
+ * @param isSuccess 是否加载成功,将参数传递给回调{@link OnStatusChangedListener #onCompleted(boolean)} ()},
430
430
*/
431
431
public void complete (boolean isSuccess ) {
432
432
stopLoading ();
@@ -447,14 +447,14 @@ public void complete(boolean isSuccess) {
447
447
}
448
448
449
449
else {
450
- if (mOnLoadingListener != null ) {
451
- mOnLoadingListener .onCompleted (isSuccess );
450
+ if (mListener != null ) {
451
+ mListener .onCompleted (isSuccess );
452
452
}
453
453
}
454
454
} else {
455
455
//No EndDrawable,disableShrink
456
- if (mOnLoadingListener != null ) {
457
- mOnLoadingListener .onCompleted (isSuccess );
456
+ if (mListener != null ) {
457
+ mListener .onCompleted (isSuccess );
458
458
}
459
459
460
460
if (enableRestore )
@@ -482,8 +482,8 @@ public void cancel(boolean withRestoreAnim) {
482
482
if (curStatus != STATUS .IDE ) {
483
483
cancelAllRunning (withRestoreAnim );
484
484
485
- if (mOnLoadingListener != null )
486
- mOnLoadingListener .onCanceled ();
485
+ if (mListener != null )
486
+ mListener .onCanceled ();
487
487
}
488
488
}
489
489
@@ -608,29 +608,29 @@ public int getLoadingEndDrawableSize() {
608
608
}
609
609
610
610
611
- public LoadingButton setCompleteDrawable (@ DrawableRes int id ) {
611
+ public LoadingButton setSuccessDrawable (@ DrawableRes int drawableRes ) {
612
612
if (mEndDrawable == null )
613
- mEndDrawable = new EndDrawable (id , -1 );
613
+ mEndDrawable = new EndDrawable (drawableRes , -1 );
614
614
else {
615
- mEndDrawable .setCompleteDrawable ( id );
615
+ mEndDrawable .setSuccessDrawable ( drawableRes );
616
616
}
617
617
return this ;
618
618
}
619
619
620
- public LoadingButton setCompleteDrawable (Drawable drawable ) {
620
+ public LoadingButton setSuccessDrawable (Drawable drawable ) {
621
621
if (mEndDrawable == null )
622
622
mEndDrawable = new EndDrawable (drawable , null );
623
623
else {
624
- mEndDrawable .setCompleteDrawable (drawable );
624
+ mEndDrawable .setSuccessDrawable (drawable );
625
625
}
626
626
return this ;
627
627
}
628
628
629
- public LoadingButton setFailDrawable (@ DrawableRes int id ) {
629
+ public LoadingButton setFailDrawable (@ DrawableRes int drawableRes ) {
630
630
if (mEndDrawable == null )
631
- mEndDrawable = new EndDrawable (-1 , id );
631
+ mEndDrawable = new EndDrawable (-1 , drawableRes );
632
632
else {
633
- mEndDrawable .setFailDrawable (id );
633
+ mEndDrawable .setFailDrawable (drawableRes );
634
634
}
635
635
return this ;
636
636
}
@@ -730,7 +730,7 @@ protected void onDraw(Canvas canvas) {
730
730
@ SuppressWarnings ("SameParameterValue" )
731
731
public class EndDrawable {
732
732
private static final int DEFAULT_APPEAR_DURATION = 300 ;
733
- private Bitmap mCompleteBitmap ;
733
+ private Bitmap mSuccessBitmap ;
734
734
private Bitmap mFailBitmap ;
735
735
private Paint mPaint ;
736
736
private Rect mBounds = new Rect ();
@@ -742,14 +742,14 @@ public class EndDrawable {
742
742
private boolean isShowing ;
743
743
private Runnable mRunnable ;
744
744
745
- private EndDrawable (@ Nullable Drawable completeDrawable , @ Nullable Drawable failDrawable ) {
746
- setCompleteDrawable ( completeDrawable );
745
+ private EndDrawable (@ Nullable Drawable successDrawable , @ Nullable Drawable failDrawable ) {
746
+ setSuccessDrawable ( successDrawable );
747
747
setFailDrawable (failDrawable );
748
748
init ();
749
749
}
750
750
751
- private EndDrawable (@ DrawableRes int completeResId , @ DrawableRes int failResId ) {
752
- setCompleteDrawable ( completeResId );
751
+ private EndDrawable (@ DrawableRes int successResId , @ DrawableRes int failResId ) {
752
+ setSuccessDrawable ( successResId );
753
753
setFailDrawable (failResId );
754
754
init ();
755
755
}
@@ -782,8 +782,8 @@ public void run() {
782
782
public void onAnimationStart (Animator animation ) {
783
783
super .onAnimationStart (animation );
784
784
curStatus = STATUS .END_DRAWABLE_SHOWING ;
785
- if (mOnLoadingListener != null ) {
786
- mOnLoadingListener .onEndDrawableAppear (!isFail , mEndDrawable );
785
+ if (mListener != null ) {
786
+ mListener .onEndDrawableAppear (!isFail , mEndDrawable );
787
787
}
788
788
}
789
789
@@ -792,8 +792,8 @@ public void onAnimationEnd(Animator animation) {
792
792
if (isShowing ) {
793
793
postDelayed (mRunnable , mKeepDuration );
794
794
}
795
- if (mOnLoadingListener != null ) {
796
- mOnLoadingListener .onCompleted (!isFail );
795
+ if (mListener != null ) {
796
+ mListener .onCompleted (!isFail );
797
797
}
798
798
}
799
799
});
@@ -916,7 +916,7 @@ private int[] calcOffset(Canvas canvas, Rect bounds, @POSITION int pos) {
916
916
*/
917
917
private void draw (Canvas canvas ) {
918
918
if (getAnimValue () > 0 && mLoadingDrawable != null ) {
919
- final Bitmap targetBitMap = isFail ? mFailBitmap : mCompleteBitmap ;
919
+ final Bitmap targetBitMap = isFail ? mFailBitmap : mSuccessBitmap ;
920
920
if (targetBitMap != null ) {
921
921
final Rect bounds = mLoadingDrawable .getBounds ();
922
922
mBounds .right = bounds .width ();
@@ -963,14 +963,14 @@ public void setKeepDuration(long keepDuration) {
963
963
}
964
964
965
965
966
- public void setCompleteDrawable (Drawable drawable ) {
967
- mCompleteBitmap = getBitmap (drawable );
966
+ public void setSuccessDrawable (Drawable drawable ) {
967
+ mSuccessBitmap = getBitmap (drawable );
968
968
}
969
969
970
- public void setCompleteDrawable (@ DrawableRes int id ) {
970
+ public void setSuccessDrawable (@ DrawableRes int id ) {
971
971
if (id != -1 ) {
972
972
Drawable drawable = ContextCompat .getDrawable (getContext (), id );
973
- mCompleteBitmap = getBitmap (drawable );
973
+ mSuccessBitmap = getBitmap (drawable );
974
974
}
975
975
}
976
976
@@ -982,7 +982,7 @@ public void setFailDrawable(@DrawableRes int id) {
982
982
}
983
983
984
984
public void setFailDrawable (Drawable drawable ) {
985
- mCompleteBitmap = getBitmap (drawable );
985
+ mSuccessBitmap = getBitmap (drawable );
986
986
}
987
987
988
988
}
@@ -1020,85 +1020,55 @@ public void getOutline(View view, Outline outline) {
1020
1020
if (enableShrink && mShrinkShape == ShrinkShape .OVAL
1021
1021
&& (curStatus == STATUS .LOADING || curStatus == STATUS .END_DRAWABLE_SHOWING )) {
1022
1022
outline .setOval (0 , 0 , getShrinkSize (), getShrinkSize ());
1023
- } else {
1023
+ } else {
1024
1024
super .getOutline (view , outline );
1025
1025
}
1026
1026
1027
1027
}
1028
1028
}
1029
1029
1030
- public interface OnLoadingListener {
1031
- void onLoadingStart ();
1032
-
1033
- void onLoadingStop ();
1034
-
1035
- void onShrinking ();
1036
-
1037
- void onEndDrawableAppear (boolean isSuccess , EndDrawable endDrawable );
1038
-
1039
- void onCompleted (boolean isSuccess );
1040
-
1041
- void onCanceled ();
1042
-
1043
- void onRestoring ();
1044
-
1045
- void onRestored ();
1046
1030
1031
+ /**
1032
+ * 状态回调
1033
+ * start -> onShrinking -> onLoadingStart -> complete -> onCompleted
1034
+ * -> onLoadingStop -> onEndDrawableAppear -> onRestoring -> onRestored
1035
+ */
1036
+ public static class OnStatusChangedListener {
1047
1037
1048
- }
1049
-
1050
-
1051
- public static class OnLoadingListenerAdapter implements OnLoadingListener {
1052
-
1053
- @ Override
1054
1038
public void onShrinking () {
1055
1039
1056
1040
}
1057
1041
1058
-
1059
- @ Override
1060
1042
public void onLoadingStart () {
1061
1043
1062
1044
}
1063
1045
1064
- @ Override
1065
1046
public void onLoadingStop () {
1066
1047
1067
-
1068
1048
}
1069
1049
1070
- @ Override
1071
1050
public void onEndDrawableAppear (boolean isSuccess , EndDrawable endDrawable ) {
1072
1051
1073
1052
}
1074
1053
1075
-
1076
- @ Override
1077
1054
public void onRestoring () {
1078
1055
1079
1056
}
1080
1057
1081
- @ Override
1082
1058
public void onRestored () {
1083
1059
1084
1060
}
1085
-
1086
- @ Override
1087
1061
public void onCompleted (boolean isSuccess ) {
1088
1062
1089
1063
}
1090
1064
1091
-
1092
- @ Override
1093
1065
public void onCanceled () {
1094
1066
1095
1067
}
1096
-
1097
-
1098
1068
}
1099
1069
1100
- public LoadingButton setOnLoadingListener ( OnLoadingListener onLoadingListener ) {
1101
- mOnLoadingListener = onLoadingListener ;
1070
+ public LoadingButton setOnStatusChangedListener ( OnStatusChangedListener listener ) {
1071
+ mListener = listener ;
1102
1072
return this ;
1103
1073
}
1104
1074
0 commit comments