package org.zarroboogs.smartzpn.ui.widget; import android.content.Context; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import com.dd.CircularProgressButton; /** * Created by andforce on 15/7/12. */ public class ProgressButton extends CircularProgressButton { private MyHandler mHandler; private static final int SHOW_PROGRESS = 0x0001; public ProgressButton(Context context) { super(context); mHandler = new MyHandler(); } public ProgressButton(Context context, AttributeSet attrs) { super(context, attrs); mHandler = new MyHandler(); } public ProgressButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mHandler = new MyHandler(); } public void setComplete() { this.setProgress(100); } public void setError() { this.setProgress(-1); } public void setIdle() { this.setProgress(0); } public void showProgress() { isStopProgress = false; mHandler.sendEmptyMessage(SHOW_PROGRESS); } public void stopShowProgress() { isStopProgress = true; mHandler.removeMessages(SHOW_PROGRESS); } private boolean isStopProgress = false; private class MyHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case SHOW_PROGRESS: { int newProgress = getProgress() + 5; if (newProgress >= 100) { newProgress = 1; } setProgress(newProgress); if (!isStopProgress) { sendEmptyMessage(SHOW_PROGRESS); } else { removeMessages(SHOW_PROGRESS); } break; } } } } }