package cn.pedant.SweetAlert; import android.content.Context; import com.pnikosis.materialishprogress.ProgressWheel; public class ProgressHelper { private ProgressWheel mProgressWheel; private boolean mToSpin; private float mSpinSpeed; private int mBarWidth; private int mBarColor; private int mRimWidth; private int mRimColor; private boolean mIsInstantProgress; private float mProgressVal; private int mCircleRadius; public ProgressHelper(Context ctx) { mToSpin = true; mSpinSpeed = 0.75f; mBarWidth = ctx.getResources().getDimensionPixelSize(R.dimen.common_circle_width) + 1; mBarColor = ctx.getResources().getColor(R.color.success_stroke_color); mRimWidth = 0; mRimColor = 0x00000000; mIsInstantProgress = false; mProgressVal = -1; mCircleRadius = ctx.getResources().getDimensionPixelOffset(R.dimen.progress_circle_radius); } public ProgressWheel getProgressWheel () { return mProgressWheel; } public void setProgressWheel (ProgressWheel progressWheel) { mProgressWheel = progressWheel; updatePropsIfNeed(); } private void updatePropsIfNeed () { if (mProgressWheel != null) { if (!mToSpin && mProgressWheel.isSpinning()) { mProgressWheel.stopSpinning(); } else if (mToSpin && !mProgressWheel.isSpinning()) { mProgressWheel.spin(); } if (mSpinSpeed != mProgressWheel.getSpinSpeed()) { mProgressWheel.setSpinSpeed(mSpinSpeed); } if (mBarWidth != mProgressWheel.getBarWidth()) { mProgressWheel.setBarWidth(mBarWidth); } if (mBarColor != mProgressWheel.getBarColor()) { mProgressWheel.setBarColor(mBarColor); } if (mRimWidth != mProgressWheel.getRimWidth()) { mProgressWheel.setRimWidth(mRimWidth); } if (mRimColor != mProgressWheel.getRimColor()) { mProgressWheel.setRimColor(mRimColor); } if (mProgressVal != mProgressWheel.getProgress()) { if (mIsInstantProgress) { mProgressWheel.setInstantProgress(mProgressVal); } else { mProgressWheel.setProgress(mProgressVal); } } if (mCircleRadius != mProgressWheel.getCircleRadius()) { mProgressWheel.setCircleRadius(mCircleRadius); } } } public void resetCount() { if (mProgressWheel != null) { mProgressWheel.resetCount(); } } public boolean isSpinning() { return mToSpin; } public void spin() { mToSpin = true; updatePropsIfNeed(); } public void stopSpinning() { mToSpin = false; updatePropsIfNeed(); } public float getProgress() { return mProgressVal; } public void setProgress(float progress) { mIsInstantProgress = false; mProgressVal = progress; updatePropsIfNeed(); } public void setInstantProgress(float progress) { mProgressVal = progress; mIsInstantProgress = true; updatePropsIfNeed(); } public int getCircleRadius() { return mCircleRadius; } /** * @param circleRadius units using pixel * **/ public void setCircleRadius(int circleRadius) { mCircleRadius = circleRadius; updatePropsIfNeed(); } public int getBarWidth() { return mBarWidth; } public void setBarWidth(int barWidth) { mBarWidth = barWidth; updatePropsIfNeed(); } public int getBarColor() { return mBarColor; } public void setBarColor(int barColor) { mBarColor = barColor; updatePropsIfNeed(); } public int getRimWidth() { return mRimWidth; } public void setRimWidth(int rimWidth) { mRimWidth = rimWidth; updatePropsIfNeed(); } public int getRimColor() { return mRimColor; } public void setRimColor(int rimColor) { mRimColor = rimColor; updatePropsIfNeed(); } public float getSpinSpeed() { return mSpinSpeed; } public void setSpinSpeed(float spinSpeed) { mSpinSpeed = spinSpeed; updatePropsIfNeed(); } }