左晓为主开发手持机充值管理机
zuoxiao
2023-11-23 50f6dd3b617f769e7fc6094c2dd0752747541489
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
 
package com.easysocket.callback;
 
import android.app.Dialog;
import android.content.DialogInterface;
 
import com.easysocket.entity.OriginReadData;
import com.easysocket.exception.RequestCancelException;
import com.easysocket.interfaces.callback.IProgressDialog;
import com.easysocket.interfaces.callback.ProgressCancelListener;
 
 
/**
 * 自定义带有加载进度框的回调
 */
public abstract class ProgressDialogCallBack extends SuperCallBack implements ProgressCancelListener {
 
    private IProgressDialog progressDialog;
    private Dialog mDialog;
    private boolean isShowProgress = true;
 
    /**
     * @param
     */
    public ProgressDialogCallBack(IProgressDialog progressDialog, String callbackId) {
        super(callbackId);
        this.progressDialog = progressDialog;
        init(false);
        onStart();
    }
 
    /**
     * 自定义加载进度框,可以设置是否显示弹出框,是否可以取消
     *
     * @param progressDialog dialog
     * @param isShowProgress 是否显示进度
     * @param isCancel       对话框是否可以取消
     * @param
     */
    public ProgressDialogCallBack(IProgressDialog progressDialog, boolean isShowProgress,
                                  boolean isCancel, String callbackId) {
        super(callbackId);
        this.progressDialog = progressDialog;
        this.isShowProgress = isShowProgress;
        init(isCancel);
        onStart();
    }
 
    /**
     * 初始化
     *
     * @param isCancel
     */
    private void init(boolean isCancel) {
        if (progressDialog == null) return;
        mDialog = progressDialog.getDialog();
        if (mDialog == null) return;
        mDialog.setCancelable(isCancel);
        if (isCancel) {
            mDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
                @Override
                public void onCancel(DialogInterface dialogInterface) {
                    ProgressDialogCallBack.this.onCancelProgress();
                }
            });
        }
    }
 
    /**
     * 展示进度框
     */
    private void showProgress() {
        if (!isShowProgress) {
            return;
        }
        if (mDialog != null && !mDialog.isShowing()) {
            mDialog.show();
        }
    }
 
    /**
     * 取消进度框
     */
    private void dismissProgress() {
        if (!isShowProgress) {
            return;
        }
        if (mDialog != null && mDialog.isShowing()) {
            mDialog.dismiss();
        }
    }
 
    @Override
    public void onStart() {
        showProgress();
    }
 
    @Override
    public void onCompleted() {
        dismissProgress();
    }
 
    public abstract void onResponse(OriginReadData data);
 
    @Override
    public void onError(Exception e) {
        onCompleted();
    }
 
    @Override
    public void onCancelProgress() {
        onCompleted();
        onError(new RequestCancelException("网络请求被取消"));
    }
 
}