@@ -95,7 +95,7 @@ interface STATUS {
9595
9696
9797 private CircularProgressDrawable mLoadingDrawable ;
98- private OnLoadingListener mOnLoadingListener ;
98+ private OnStatusChangedListener mListener ;
9999 private EndDrawable mEndDrawable ;
100100 private int mLoadingSize ;
101101 private int mLoadingPosition ;
@@ -135,7 +135,7 @@ private void init(Context context, AttributeSet attrs) {
135135 int loadingDrawableSize = array .getDimensionPixelSize (R .styleable .LoadingButton_loadingEndDrawableSize , (int ) (enableShrink ? getTextSize () * 2 : getTextSize ()));
136136 int loadingDrawableColor = array .getColor (R .styleable .LoadingButton_loadingDrawableColor , getTextColors ().getDefaultColor ());
137137 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 );
139139 int endFailDrawableResId = array .getResourceId (R .styleable .LoadingButton_endFailDrawable , -1 );
140140 int endDrawableAppearTime = array .getInt (R .styleable .LoadingButton_endDrawableAppearTime , EndDrawable .DEFAULT_APPEAR_DURATION );
141141 int endDrawableDuration = array .getInt (R .styleable .LoadingButton_endDrawableDuration , 900 );
@@ -153,8 +153,8 @@ private void init(Context context, AttributeSet attrs) {
153153 setEnableCenterDrawables (true );
154154
155155 //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 );
158158 mEndDrawable .mAppearAnimator .setDuration (endDrawableAppearTime );
159159 mEndDrawable .setKeepDuration (endDrawableDuration );
160160 }
@@ -211,8 +211,8 @@ public void onAnimationStart(Animator animation) {
211211 //begin shrink
212212 curStatus = STATUS .SHRINKING ;
213213 isSizeChanging = true ;
214- if (mOnLoadingListener != null ) {
215- mOnLoadingListener .onShrinking ();
214+ if (mListener != null ) {
215+ mListener .onShrinking ();
216216 }
217217
218218 LoadingButton .super .setText ("" , BufferType .NORMAL );
@@ -224,8 +224,8 @@ public void onAnimationStart(Animator animation) {
224224 //begin restore
225225 stopLoading ();
226226 curStatus = STATUS .RESTORING ;
227- if (mOnLoadingListener != null ) {
228- mOnLoadingListener .onRestoring ();
227+ if (mListener != null ) {
228+ mListener .onRestoring ();
229229 }
230230
231231 }
@@ -244,8 +244,8 @@ public void onAnimationEnd(Animator animation) {
244244 isSizeChanging = false ;
245245 nextReverse = false ;
246246 toIde ();
247- if (mOnLoadingListener != null ) {
248- mOnLoadingListener .onRestored ();
247+ if (mListener != null ) {
248+ mListener .onRestored ();
249249 }
250250 }
251251 }
@@ -346,8 +346,8 @@ private void startLoading() {
346346 mLoadingDrawable .start ();
347347 }
348348
349- if (mOnLoadingListener != null ) {
350- mOnLoadingListener .onLoadingStart ();
349+ if (mListener != null ) {
350+ mListener .onLoadingStart ();
351351 }
352352 }
353353
@@ -357,8 +357,8 @@ private void startLoading() {
357357 private void stopLoading () {
358358 if (mLoadingDrawable .isRunning ()) {
359359 mLoadingDrawable .stop ();
360- if (mOnLoadingListener != null ) {
361- mOnLoadingListener .onLoadingStop ();
360+ if (mListener != null ) {
361+ mListener .onLoadingStop ();
362362 }
363363 }
364364
@@ -426,7 +426,7 @@ public void start() {
426426 * 完成加载,显示对应的EndDrawable
427427 * <p>
428428 *
429- * @param isSuccess 是否加载成功,将参数传递给回调{@link OnLoadingListener #onCompleted(boolean)} ()},
429+ * @param isSuccess 是否加载成功,将参数传递给回调{@link OnStatusChangedListener #onCompleted(boolean)} ()},
430430 */
431431 public void complete (boolean isSuccess ) {
432432 stopLoading ();
@@ -447,14 +447,14 @@ public void complete(boolean isSuccess) {
447447 }
448448
449449 else {
450- if (mOnLoadingListener != null ) {
451- mOnLoadingListener .onCompleted (isSuccess );
450+ if (mListener != null ) {
451+ mListener .onCompleted (isSuccess );
452452 }
453453 }
454454 } else {
455455 //No EndDrawable,disableShrink
456- if (mOnLoadingListener != null ) {
457- mOnLoadingListener .onCompleted (isSuccess );
456+ if (mListener != null ) {
457+ mListener .onCompleted (isSuccess );
458458 }
459459
460460 if (enableRestore )
@@ -482,8 +482,8 @@ public void cancel(boolean withRestoreAnim) {
482482 if (curStatus != STATUS .IDE ) {
483483 cancelAllRunning (withRestoreAnim );
484484
485- if (mOnLoadingListener != null )
486- mOnLoadingListener .onCanceled ();
485+ if (mListener != null )
486+ mListener .onCanceled ();
487487 }
488488 }
489489
@@ -608,29 +608,29 @@ public int getLoadingEndDrawableSize() {
608608 }
609609
610610
611- public LoadingButton setCompleteDrawable (@ DrawableRes int id ) {
611+ public LoadingButton setSuccessDrawable (@ DrawableRes int drawableRes ) {
612612 if (mEndDrawable == null )
613- mEndDrawable = new EndDrawable (id , -1 );
613+ mEndDrawable = new EndDrawable (drawableRes , -1 );
614614 else {
615- mEndDrawable .setCompleteDrawable ( id );
615+ mEndDrawable .setSuccessDrawable ( drawableRes );
616616 }
617617 return this ;
618618 }
619619
620- public LoadingButton setCompleteDrawable (Drawable drawable ) {
620+ public LoadingButton setSuccessDrawable (Drawable drawable ) {
621621 if (mEndDrawable == null )
622622 mEndDrawable = new EndDrawable (drawable , null );
623623 else {
624- mEndDrawable .setCompleteDrawable (drawable );
624+ mEndDrawable .setSuccessDrawable (drawable );
625625 }
626626 return this ;
627627 }
628628
629- public LoadingButton setFailDrawable (@ DrawableRes int id ) {
629+ public LoadingButton setFailDrawable (@ DrawableRes int drawableRes ) {
630630 if (mEndDrawable == null )
631- mEndDrawable = new EndDrawable (-1 , id );
631+ mEndDrawable = new EndDrawable (-1 , drawableRes );
632632 else {
633- mEndDrawable .setFailDrawable (id );
633+ mEndDrawable .setFailDrawable (drawableRes );
634634 }
635635 return this ;
636636 }
@@ -730,7 +730,7 @@ protected void onDraw(Canvas canvas) {
730730 @ SuppressWarnings ("SameParameterValue" )
731731 public class EndDrawable {
732732 private static final int DEFAULT_APPEAR_DURATION = 300 ;
733- private Bitmap mCompleteBitmap ;
733+ private Bitmap mSuccessBitmap ;
734734 private Bitmap mFailBitmap ;
735735 private Paint mPaint ;
736736 private Rect mBounds = new Rect ();
@@ -742,14 +742,14 @@ public class EndDrawable {
742742 private boolean isShowing ;
743743 private Runnable mRunnable ;
744744
745- private EndDrawable (@ Nullable Drawable completeDrawable , @ Nullable Drawable failDrawable ) {
746- setCompleteDrawable ( completeDrawable );
745+ private EndDrawable (@ Nullable Drawable successDrawable , @ Nullable Drawable failDrawable ) {
746+ setSuccessDrawable ( successDrawable );
747747 setFailDrawable (failDrawable );
748748 init ();
749749 }
750750
751- private EndDrawable (@ DrawableRes int completeResId , @ DrawableRes int failResId ) {
752- setCompleteDrawable ( completeResId );
751+ private EndDrawable (@ DrawableRes int successResId , @ DrawableRes int failResId ) {
752+ setSuccessDrawable ( successResId );
753753 setFailDrawable (failResId );
754754 init ();
755755 }
@@ -782,8 +782,8 @@ public void run() {
782782 public void onAnimationStart (Animator animation ) {
783783 super .onAnimationStart (animation );
784784 curStatus = STATUS .END_DRAWABLE_SHOWING ;
785- if (mOnLoadingListener != null ) {
786- mOnLoadingListener .onEndDrawableAppear (!isFail , mEndDrawable );
785+ if (mListener != null ) {
786+ mListener .onEndDrawableAppear (!isFail , mEndDrawable );
787787 }
788788 }
789789
@@ -792,8 +792,8 @@ public void onAnimationEnd(Animator animation) {
792792 if (isShowing ) {
793793 postDelayed (mRunnable , mKeepDuration );
794794 }
795- if (mOnLoadingListener != null ) {
796- mOnLoadingListener .onCompleted (!isFail );
795+ if (mListener != null ) {
796+ mListener .onCompleted (!isFail );
797797 }
798798 }
799799 });
@@ -916,7 +916,7 @@ private int[] calcOffset(Canvas canvas, Rect bounds, @POSITION int pos) {
916916 */
917917 private void draw (Canvas canvas ) {
918918 if (getAnimValue () > 0 && mLoadingDrawable != null ) {
919- final Bitmap targetBitMap = isFail ? mFailBitmap : mCompleteBitmap ;
919+ final Bitmap targetBitMap = isFail ? mFailBitmap : mSuccessBitmap ;
920920 if (targetBitMap != null ) {
921921 final Rect bounds = mLoadingDrawable .getBounds ();
922922 mBounds .right = bounds .width ();
@@ -963,14 +963,14 @@ public void setKeepDuration(long keepDuration) {
963963 }
964964
965965
966- public void setCompleteDrawable (Drawable drawable ) {
967- mCompleteBitmap = getBitmap (drawable );
966+ public void setSuccessDrawable (Drawable drawable ) {
967+ mSuccessBitmap = getBitmap (drawable );
968968 }
969969
970- public void setCompleteDrawable (@ DrawableRes int id ) {
970+ public void setSuccessDrawable (@ DrawableRes int id ) {
971971 if (id != -1 ) {
972972 Drawable drawable = ContextCompat .getDrawable (getContext (), id );
973- mCompleteBitmap = getBitmap (drawable );
973+ mSuccessBitmap = getBitmap (drawable );
974974 }
975975 }
976976
@@ -982,7 +982,7 @@ public void setFailDrawable(@DrawableRes int id) {
982982 }
983983
984984 public void setFailDrawable (Drawable drawable ) {
985- mCompleteBitmap = getBitmap (drawable );
985+ mSuccessBitmap = getBitmap (drawable );
986986 }
987987
988988 }
@@ -1020,85 +1020,55 @@ public void getOutline(View view, Outline outline) {
10201020 if (enableShrink && mShrinkShape == ShrinkShape .OVAL
10211021 && (curStatus == STATUS .LOADING || curStatus == STATUS .END_DRAWABLE_SHOWING )) {
10221022 outline .setOval (0 , 0 , getShrinkSize (), getShrinkSize ());
1023- } else {
1023+ } else {
10241024 super .getOutline (view , outline );
10251025 }
10261026
10271027 }
10281028 }
10291029
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 ();
10461030
1031+ /**
1032+ * 状态回调
1033+ * start -> onShrinking -> onLoadingStart -> complete -> onCompleted
1034+ * -> onLoadingStop -> onEndDrawableAppear -> onRestoring -> onRestored
1035+ */
1036+ public static class OnStatusChangedListener {
10471037
1048- }
1049-
1050-
1051- public static class OnLoadingListenerAdapter implements OnLoadingListener {
1052-
1053- @ Override
10541038 public void onShrinking () {
10551039
10561040 }
10571041
1058-
1059- @ Override
10601042 public void onLoadingStart () {
10611043
10621044 }
10631045
1064- @ Override
10651046 public void onLoadingStop () {
10661047
1067-
10681048 }
10691049
1070- @ Override
10711050 public void onEndDrawableAppear (boolean isSuccess , EndDrawable endDrawable ) {
10721051
10731052 }
10741053
1075-
1076- @ Override
10771054 public void onRestoring () {
10781055
10791056 }
10801057
1081- @ Override
10821058 public void onRestored () {
10831059
10841060 }
1085-
1086- @ Override
10871061 public void onCompleted (boolean isSuccess ) {
10881062
10891063 }
10901064
1091-
1092- @ Override
10931065 public void onCanceled () {
10941066
10951067 }
1096-
1097-
10981068 }
10991069
1100- public LoadingButton setOnLoadingListener ( OnLoadingListener onLoadingListener ) {
1101- mOnLoadingListener = onLoadingListener ;
1070+ public LoadingButton setOnStatusChangedListener ( OnStatusChangedListener listener ) {
1071+ mListener = listener ;
11021072 return this ;
11031073 }
11041074
0 commit comments