Skip to content

Commit

Permalink
图片上传的基类方法优化
Browse files Browse the repository at this point in the history
  • Loading branch information
XinYiWorld committed Apr 25, 2017
1 parent 2432288 commit 3bbdab3
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public interface I_Real_RequestServer {
void realDownloadFile(View executor,int requestCode,String fileUrl);

//上传单个文件(同时可以上传字段参数)
<T,K> void realUpOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,String> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList);
<T,K> void realUpOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,Object> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList);

//上传多个文件(同时可以上传字段参数)
<T,K> void realUpFilesAndData(View executor,int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,String> params,List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList);
<T,K> void realUpFilesAndData(View executor,int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,Object> params,List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList);
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ public interface I_Try_RequestServer extends I_BindHttpResultHandler{
void downloadFile(View executor,int requestCode,String fileUrl);

//上传单个文件(同时可以上传字段参数)
<T,K> void uploadOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,String> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList);
<T,K> void uploadOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,Object> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList);

//上传多个文件(同时可以上传字段参数)
<T,K> void uploadFilesAndData(View executor,int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,String> params,List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList);
<T,K> void uploadFilesAndData(View executor,int requestCode, Class<T> serviceClass, String methodName, final Class<K> convertedClass, Map<String,Object> params,List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList);
}
Original file line number Diff line number Diff line change
Expand Up @@ -190,14 +190,14 @@ public void downloadFile(View executor, int requestCode, String fileUrl) {
}

@Override
public <T, K> void uploadOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,String> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList) {
public <T, K> void uploadOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,Object> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList) {
ArrayList<UploadFileWrapper> uploadFileWrappers = new ArrayList<>();
uploadFileWrappers.add(uploadFileWrapper);
uploadFilesAndData(executor,requestCode,serviceClass,methodName,convertedClass,params,uploadFileWrappers,isTargetBeanAsList);
}

@Override
public <T, K> void uploadFilesAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,String> params, List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList) {
public <T, K> void uploadFilesAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,Object> params, List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList) {
checkNetStateAndDecideIfGoNext(executor,requestCode,serviceClass,methodName,convertedClass,params,uploadFileWrappers,true,isTargetBeanAsList);
}

Expand All @@ -216,14 +216,14 @@ public void realDownloadFile(View executor, int requestCode, String fileUrl) {
}

@Override
public <T, K> void realUpOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,String> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList) {
public <T, K> void realUpOneFileAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,Object> params, UploadFileWrapper uploadFileWrapper, boolean... isTargetBeanAsList) {
List<UploadFileWrapper> uploadFileWrappers = new ArrayList<>();
uploadFileWrappers.add(uploadFileWrapper);
realUpFilesAndData(executor,requestCode,serviceClass,methodName,convertedClass,params,uploadFileWrappers,isTargetBeanAsList);
}

@Override
public <T, K> void realUpFilesAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,String> params, List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList) {
public <T, K> void realUpFilesAndData(View executor, int requestCode, Class<T> serviceClass, String methodName, Class<K> convertedClass, Map<String,Object> params, List<UploadFileWrapper> uploadFileWrappers, boolean... isTargetBeanAsList) {
if (progressView != null) {
progressView.onShowProgressDialog();
}
Expand Down Expand Up @@ -303,7 +303,7 @@ public void onClick(DialogInterface dialog, int which) {
}
}

private <T, K> void checkNetStateAndDecideIfGoNext(final View executor, final int requestCode, final Class<T> serviceClass, final String methodName, final Class<K> convertedClass, final Map<String,String> params, final List<UploadFileWrapper> uploadFileWrappers , final boolean needConvert, final boolean... isTargetBeanAsList) {
private <T, K> void checkNetStateAndDecideIfGoNext(final View executor, final int requestCode, final Class<T> serviceClass, final String methodName, final Class<K> convertedClass, final Map<String,Object> params, final List<UploadFileWrapper> uploadFileWrappers , final boolean needConvert, final boolean... isTargetBeanAsList) {
//网络环境判断
if (!NetUtil.isConnected(mContext)) {
ToastUtil.shortT(mContext,"请开启网络!");
Expand Down Expand Up @@ -501,7 +501,7 @@ private <T, K> void executeService(final View executor, int requestCode, Class<T
}


private <T, K> void executeService(final View executor, int requestCode, Class<T> serviceClass, Class<K> convertedClass,Map<String,String> params, List<UploadFileWrapper> uploadFileWrappers, Method serviceExecuteMethod, boolean[] isTargetBeanAsList) throws IllegalAccessException, InvocationTargetException {
private <T, K> void executeService(final View executor, int requestCode, Class<T> serviceClass, Class<K> convertedClass,Map<String,Object> params, List<UploadFileWrapper> uploadFileWrappers, Method serviceExecuteMethod, boolean[] isTargetBeanAsList) throws IllegalAccessException, InvocationTargetException {
setState(executor, false);
((Observable<BaseHttpResultBean>) (serviceExecuteMethod.invoke(RetrofitClient.getService(serviceClass), MultipartGenerator.generate(params,uploadFileWrappers))))
.subscribeOn(Schedulers.io())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ public static List<MultipartBody.Part> generate(List<UploadFileWrapper> uploadFi
return parts;
}

public static List<MultipartBody.Part> generate(Map<String,String> params, List<UploadFileWrapper> uploadFileWrappers){
public static List<MultipartBody.Part> generate(Map<String,Object> params, List<UploadFileWrapper> uploadFileWrappers){
List<MultipartBody.Part> parts = new ArrayList<>(uploadFileWrappers.size());
//添加字段part
if(params != null){
Set<String> keySet = params.keySet();
for (Iterator<String> it = keySet.iterator(); it.hasNext();){
String key = it.next();
String value = params.get(key);
parts.add(MultipartBody.Part.createFormData(key,value));
Object value = params.get(key);
parts.add(MultipartBody.Part.createFormData(key,String.valueOf(value)));
}
}

Expand Down

0 comments on commit 3bbdab3

Please sign in to comment.