92 lines
2.3 KiB
Java
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) {
|
|
|
|
}
|
|
});
|
|
}
|
|
}
|