|
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("网络请求被取消"));
|
}
|
|
}
|