Files
pdlivexp/OneToOne/src/main/java/com/shayu/onetoone/upload/UploadCustomImpl.java
2023-10-19 18:27:39 +08:00

92 lines
2.3 KiB
Java

package com.shayu.onetoone.upload;
import android.content.Context;
import com.shayu.onetoone.bean.AvatarBean;
import com.shayu.onetoone.manager.OTONetManager;
import com.yunbao.common.http.base.HttpCallback;
import java.util.List;
/**
* 文件上传
*/
public class UploadCustomImpl implements UploadStrategy {
private static final String TAG = "UploadQnImpl";
private Context mContext;
private List<UploadBean> mList;
private int mIndex;
private boolean mNeedCompress;
private UploadCallback mUploadCallback;
public UploadCustomImpl(Context context) {
mContext = context;
}
@Override
public void upload(List<UploadBean> list, boolean needCompress, UploadCallback callback) {
if (callback == null) {
return;
}
if (list == null || list.size() == 0) {
callback.onFinish(list, false);
return;
}
boolean hasFile = false;
for (UploadBean bean : list) {
if (bean.getOriginFile() != null) {
hasFile = true;
break;
}
}
if (!hasFile) {
callback.onFinish(list, true);
return;
}
mList = list;
mNeedCompress = needCompress;
mUploadCallback = callback;
mIndex = 0;
uploadNext();
}
@Override
public void cancelUpload() {
}
private void uploadNext() {
UploadBean bean = null;
while (mIndex < mList.size() && (bean = mList.get(mIndex)).getOriginFile() == null) {
mIndex++;
}
if (mIndex >= mList.size() || bean == null) {
if (mUploadCallback != null) {
mUploadCallback.onFinish(mList, true);
}
return;
}
upload(bean);
}
private void upload(UploadBean bean) {
OTONetManager.getInstance(mContext).updateFile(bean.getOriginFile(), new HttpCallback<AvatarBean>() {
@Override
public void onSuccess(AvatarBean data) {
if (data != null) {
bean.setRemoteAccessUrl(data.getAvatar());
bean.setSuccess(true);
uploadNext();
}
}
@Override
public void onError(String error) {
}
});
}
}