@Override
    protected void onDraw(Canvas canvas) {
        if (isInEditMode()) {
            canvas.drawArc(oval, 0, 365, false, mPaint);
            return;
        }
        if (noShowLoading) {
            canvas.drawArc(oval, 0, 365, false, mPaint);
            successStep = 2;
            drawDoneMark(status, canvas);
            return;
        }
        
        float sweepAngle = (float) (halfSweepA * Math.sin(Math.toRadians(followRotateDegrees))) + halfSweepA + halfSweepAMinValue / 2;
        switch (status) {
            case STATUS_LOADING:
                canvas.drawArc(oval, currentRotateDegrees, -sweepAngle, false, mPaint);
                break;
            case STATUS_SUCCESS:
            case STATUS_WARNING:
            case STATUS_ERROR:
                canvas.drawArc(oval, 0, 360, false, mPaint);
                drawDoneMark(status, canvas);
                break;
            case STATUS_PROGRESSING:
                canvas.drawArc(oval, -90, currentRotateDegrees, false, mPaint);
                if (waitProgressingRunnable != null) {
                    waitProgressingRunnable.run();
                    waitProgressingRunnable = null;
                }
                break;
        }
    }
@author: Kongzue
@github: https://github.com/kongzue/
@homepage: http://kongzue.com/
@mail: myzcxhh@live.cn
@createTime: 2021/3/14 20:58
DialogX/src/main/java/com/kongzue/dialogx/util/views/NoArticulatedProgressView.java