|
@@ -2,7 +2,9 @@ package com.cooleshow.base.utils.helper.upload;
|
|
|
|
|
|
import android.app.Activity;
|
|
|
import android.text.TextUtils;
|
|
|
+import android.view.View;
|
|
|
|
|
|
+import com.cooleshow.base.R;
|
|
|
import com.cooleshow.base.bean.UploadTokenInfoBean;
|
|
|
import com.cooleshow.base.common.BaseConstant;
|
|
|
import com.cooleshow.base.constanst.UploadConstants;
|
|
@@ -17,6 +19,7 @@ import com.cooleshow.base.utils.RequestBodyUtil;
|
|
|
import com.cooleshow.base.utils.SPUtils;
|
|
|
import com.cooleshow.base.utils.ThreadUtils;
|
|
|
import com.cooleshow.base.utils.TimeUtils;
|
|
|
+import com.cooleshow.base.utils.UiUtils;
|
|
|
import com.cooleshow.base.utils.Utils;
|
|
|
import com.cooleshow.base.widgets.UploadProgressLoading;
|
|
|
import com.tencent.cos.xml.CosXmlServiceConfig;
|
|
@@ -55,7 +58,7 @@ import okhttp3.RequestBody;
|
|
|
/**
|
|
|
* Author by pq, Date on 2022/5/11.
|
|
|
*/
|
|
|
-public class UploadHelper {
|
|
|
+public class UploadHelper implements View.OnClickListener {
|
|
|
private static final String TAG = "UploadHelper";
|
|
|
public String SRC_BUCKETNAME = UploadConstants.BUCKET_NAME_DEFAULT;
|
|
|
public static final String END_POINT = "ks3-cn-beijing.ksyuncs.com";
|
|
@@ -72,6 +75,8 @@ public class UploadHelper {
|
|
|
private String loadingTip = "";
|
|
|
private String path = "";
|
|
|
private CosXmlSimpleService mCosXmlService;
|
|
|
+ private COSXMLUploadTask cosxmlUploadTask;
|
|
|
+ private boolean isCancel = false;
|
|
|
|
|
|
public UploadHelper(Activity activity, int type) {
|
|
|
this(activity, UploadConstants.getBucketNameByType(type), UploadConstants.getPathByType(type));
|
|
@@ -101,6 +106,7 @@ public class UploadHelper {
|
|
|
return;
|
|
|
}
|
|
|
mProgressLoading = UploadProgressLoading.Companion.create(mActivity);
|
|
|
+ mProgressLoading.setCancelClickListener(this);
|
|
|
setLoadingTip("上传中");
|
|
|
}
|
|
|
}
|
|
@@ -116,7 +122,7 @@ public class UploadHelper {
|
|
|
};
|
|
|
// 存储桶所在地域简称,例如广州地区是 ap-guangzhou
|
|
|
String region = UploadConstants.DEFAULT_TT_REGION;
|
|
|
- String cdnCustomDomain =UploadConstants.DEFAULT_TT_HOST;
|
|
|
+ String cdnCustomDomain = UploadConstants.DEFAULT_TT_HOST;
|
|
|
|
|
|
|
|
|
// 创建 CosXmlServiceConfig 对象,根据需要修改默认的配置参数
|
|
@@ -135,6 +141,9 @@ public class UploadHelper {
|
|
|
}
|
|
|
|
|
|
private void doUpload2(String key, File file) {
|
|
|
+ if (isCancel) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
// 初始化 TransferConfig,这里使用默认配置,如果需要定制,请参考 SDK 接口文档
|
|
|
TransferConfig transferConfig = new TransferConfig.Builder()
|
|
|
.setForceSimpleUpload(true).build();
|
|
@@ -149,7 +158,7 @@ public class UploadHelper {
|
|
|
// 若存在初始化分块上传的 UploadId,则赋值对应的 uploadId 值用于续传;否则,赋值 null
|
|
|
String uploadId = null;
|
|
|
// 上传文件
|
|
|
- COSXMLUploadTask cosxmlUploadTask = transferManager.upload(bucket, cosPath,
|
|
|
+ cosxmlUploadTask = transferManager.upload(bucket, cosPath,
|
|
|
srcPath, uploadId);
|
|
|
showUploadLoading();
|
|
|
|
|
@@ -269,9 +278,10 @@ public class UploadHelper {
|
|
|
} else {
|
|
|
name = "" + timeStr;
|
|
|
}
|
|
|
- String lastName = getUserId()+"_"+name;
|
|
|
+ String lastName = getUserId() + "_" + name;
|
|
|
String month = TimeUtils.date2String(TimeUtils.getNowDate(), TimeUtils.getSafeDateFormat("yyyy-MM"));
|
|
|
String key = formatPath(path) + "android/" + month + "/" + lastName;
|
|
|
+ isCancel = false;
|
|
|
getUploadToken(name, key, file);
|
|
|
}
|
|
|
|
|
@@ -371,6 +381,26 @@ public class UploadHelper {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ int id = v.getId();
|
|
|
+ if (UiUtils.isFastClick()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (id == R.id.tv_cancel) {
|
|
|
+ cancelUpload();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void cancelUpload() {
|
|
|
+ this.isCancel =true;
|
|
|
+ if (cosxmlUploadTask != null) {
|
|
|
+ cosxmlUploadTask.cancel();
|
|
|
+ }
|
|
|
+ hideUploadLoading();
|
|
|
+ }
|
|
|
+
|
|
|
public abstract static class UpLoadCallBack {
|
|
|
protected abstract void onSuccess(String url);
|
|
|
|