From 596d0bcbacd8dde70f0bbcfdf07db5cf694220ef Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 08 一月 2025 09:33:20 +0800
Subject: [PATCH] 1.修复上传文件取消上传还会上传bug 2.添加上传视频功能 3.添加关闭activity时关闭上传功能。
---
app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java | 58 ++++++++
app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java | 52 +++++--
app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java | 24 +++
app/src/main/java/com/dayu/pipirrapp/net/Constants.java | 7
app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java | 57 +++++--
app/src/main/res/layout/activity_change_pass_word.xml | 12 +
app/src/main/java/com/dayu/pipirrapp/net/RetrofitClient.java | 6
app/src/main/java/com/dayu/pipirrapp/utils/ToastUtil.java | 24 ++
app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java | 46 +++--
app/src/main/res/layout/item_add_filter_image.xml | 30 ++--
app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java | 52 +++++-
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 18 +-
app/src/main/java/com/dayu/pipirrapp/net/ApiService.java | 12 +
app/build.gradle | 9 +
14 files changed, 302 insertions(+), 105 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 39ae300..7cd0c47 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -50,7 +50,11 @@
}
buildTypes {
+ debug{
+ buildConfigField "boolean", "DEBUG", "true"
+ }
release {
+ buildConfigField "boolean", "DEBUG", "false"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
@@ -59,7 +63,10 @@
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
-
+ // 鍚敤 buildConfig 鐗规��
+ buildFeatures {
+ buildConfig true
+ }
dataBinding {
enabled = true;
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java
index d56f0b0..dea3805 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/AddIssueActivity.java
@@ -30,10 +30,12 @@
import com.dayu.pipirrapp.net.BaseResponse;
import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
import com.dayu.pipirrapp.net.upload.UploadFileListener;
+import com.dayu.pipirrapp.tool.FileUploadUtils;
import com.dayu.pipirrapp.tool.FullyGridLayoutManager;
import com.dayu.pipirrapp.tool.GlideEngine;
import com.dayu.pipirrapp.tool.ImageFileCompressEngine;
import com.dayu.pipirrapp.utils.CommonKeyName;
+import com.dayu.pipirrapp.utils.MyLog;
import com.dayu.pipirrapp.utils.ServiceUtils;
import com.dayu.pipirrapp.utils.ToastUtil;
import com.dayu.pipirrapp.view.TitleBar;
@@ -141,6 +143,11 @@
@Override
public void onDeleteClick(int position) {
deleteItem(position);
+ }
+
+ @Override
+ public void onReUpload(UplodFileState uplodFileState) {
+ uplodeImg(uplodFileState);
}
});
binding.dealButton.setOnClickListener(v -> {
@@ -270,6 +277,7 @@
Log.i(TAG, "瑁佸壀瀹介珮: " + media.getCropImageWidth() + "x" + media.getCropImageHeight());
Log.i(TAG, "鏂囦欢澶у皬: " + PictureFileUtils.formatAccurateUnitFileSize(media.getSize()));
Log.i(TAG, "鏂囦欢鏃堕暱: " + media.getDuration());
+ Log.i(TAG, "鎵╁睍鍚�: " + media.getMimeType());
String compressPath = media.getCompressPath();
//鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗囧苟娣诲姞uplodFileStates涓�
if (TextUtils.isEmpty(compressPath)) {
@@ -278,6 +286,13 @@
if (!existingPaths.contains(compressPath)) {
UplodFileState uplodFileState = new UplodFileState();
uplodFileState.setFilePath(compressPath);
+ if (compressPath.toLowerCase().endsWith(".mp4") || compressPath.toLowerCase().endsWith(".avi") || compressPath.toLowerCase().endsWith(".mkv") || compressPath.toLowerCase().endsWith(".mov")) {
+ // 杩欐槸瑙嗛鏂囦欢
+ uplodFileState.setUploadType(UplodFileState.VIDEO_TYPE);
+ } else {
+ uplodFileState.setUploadType(UplodFileState.IMG_TYPE);
+ }
+ uplodFileState.setExtName(media.getMimeType());
uplodFileStates.put(compressPath, uplodFileState);
// 鎵ц涓婁紶鍥剧墖鐨勬搷浣�
uplodeImg(uplodFileState);
@@ -318,11 +333,7 @@
//涓婁紶鍥剧墖
private void uplodeImg(UplodFileState uplodFileState) {
- ApiManager.getInstance().uploadFile(this, uplodFileState, state -> {
-
- uplodFileStates.replace(state.getFilePath(), state);
- mAdapter.updateProgress(uplodFileState);
- }, mAdapter);
+ FileUploadUtils.uploadFile(this, uplodFileState, uplodFileStates, mAdapter);
}
/**
@@ -372,20 +383,35 @@
protected void onDestroy() {
super.onDestroy();
LiveEventBus.get(CommonKeyName.locationData).removeObserver(locationObserver);
+ FileUploadUtils.cancelAllCall(uplodFileStates);
}
/**
* 棰勮鍜屽浘鐗囧垪琛ㄥ垹闄ゅ浘鐗囨椂澶勭悊鍒犻櫎浜嬩欢
*/
private void deleteItem(int position) {
- try {
- Call<BaseResponse> mCall = uplodFileStates.get(position).getThisCall();
- if (mCall != null) {
- mCall.cancel();
- }
- } catch (Exception e) {
- e.printStackTrace();
+ LocalMedia localMedia = mAdapter.getData().get(position);
+ String path;
+ UplodFileState uplodFileState;
+ if (TextUtils.isEmpty(localMedia.getCompressPath())) {
+ uplodFileState = uplodFileStates.get(localMedia.getRealPath());
+ } else {
+ uplodFileState = uplodFileStates.get(localMedia.getCompressPath());
}
- uplodFileStates.remove(position);
+ if (uplodFileState != null) {
+ path = uplodFileState.getFilePath();
+ try {
+ Call<BaseResponse> mCall = uplodFileStates.get(path).getThisCall();
+ if (mCall != null) {
+ mCall.cancel();
+ MyLog.d("progressRequestBody>>>" + "cancel銆嬨�嬨�媝ath:" + path);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ uplodFileStates.remove(path);
+ }
+
}
+
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
index aa18d33..fef6b3d 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
@@ -29,6 +29,7 @@
import com.dayu.pipirrapp.net.BaseResponse;
import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
import com.dayu.pipirrapp.net.upload.UploadFileListener;
+import com.dayu.pipirrapp.tool.FileUploadUtils;
import com.dayu.pipirrapp.tool.FullyGridLayoutManager;
import com.dayu.pipirrapp.tool.GlideEngine;
import com.dayu.pipirrapp.tool.ImageFileCompressEngine;
@@ -79,8 +80,8 @@
private final List<LocalMedia> mData = new ArrayList<>();
private ActivityResultLauncher<Intent> launcherResult;
private ImageEngine imageEngine;
-// List<UplodFileState> uplodFileStates = new ArrayList<>();
-Map<String, UplodFileState> uplodFileStates = new HashMap<>();
+ // List<UplodFileState> uplodFileStates = new ArrayList<>();
+ Map<String, UplodFileState> uplodFileStates = new HashMap<>();
String workOrderId;
LatLonBean latLonBean;
@@ -143,6 +144,12 @@
@Override
public void onDeleteClick(int position) {
deleteItem(position);
+ }
+
+ @Override
+ public void onReUpload(UplodFileState uplodFileState) {
+ uplodFileState.setState(UplodFileState.STATE_UPDING);
+ uplodeImg(uplodFileState);
}
});
binding.dealButton.setOnClickListener(v -> {
@@ -265,9 +272,18 @@
Log.i(TAG, "鏂囦欢鏃堕暱: " + media.getDuration());
String compressPath = media.getCompressPath();
//鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗�
+ if (TextUtils.isEmpty(compressPath)) {
+ compressPath = media.getRealPath();
+ }
if (!existingPaths.contains(compressPath)) {
UplodFileState uplodFileState = new UplodFileState();
uplodFileState.setFilePath(compressPath);
+ if (compressPath.toLowerCase().endsWith(".mp4") || compressPath.toLowerCase().endsWith(".avi") || compressPath.toLowerCase().endsWith(".mkv") || compressPath.toLowerCase().endsWith(".mov")) {
+ // 杩欐槸瑙嗛鏂囦欢
+ uplodFileState.setUploadType(UplodFileState.VIDEO_TYPE);
+ }else {
+ uplodFileState.setUploadType(UplodFileState.IMG_TYPE);
+ }
uplodFileStates.put(compressPath, uplodFileState);
// 鎵ц涓婁紶鍥剧墖鐨勬搷浣�
uplodeImg(uplodFileState);
@@ -306,13 +322,7 @@
//涓婁紶鍥剧墖
private void uplodeImg(UplodFileState uplodFileState) {
- ApiManager.getInstance().uploadFile(this, uplodFileState, new UploadFileListener() {
- @Override
- public void onBack(UplodFileState state) {
- uplodFileStates.replace(state.getFilePath(), state);
- mAdapter.updateProgress(uplodFileState);
- }
- }, mAdapter);
+ FileUploadUtils.uploadFile(this, uplodFileState, uplodFileStates, mAdapter);
}
/**
@@ -363,20 +373,33 @@
protected void onDestroy() {
super.onDestroy();
LiveEventBus.get(CommonKeyName.locationData).removeObserver(locationObserver);
+ FileUploadUtils.cancelAllCall(uplodFileStates);
}
/**
* 棰勮鍜屽浘鐗囧垪琛ㄥ垹闄ゅ浘鐗囨椂澶勭悊鍒犻櫎浜嬩欢
*/
private void deleteItem(int position) {
- try {
- Call<BaseResponse> mCall = uplodFileStates.get(position).getThisCall();
- if (mCall != null) {
- mCall.cancel();
- }
- } catch (Exception e) {
- e.printStackTrace();
+ LocalMedia localMedia = mAdapter.getData().get(position);
+ String path;
+ UplodFileState uplodFileState;
+ if (TextUtils.isEmpty(localMedia.getCompressPath())) {
+ uplodFileState = uplodFileStates.get(localMedia.getRealPath());
+ } else {
+ uplodFileState = uplodFileStates.get(localMedia.getCompressPath());
}
- uplodFileStates.remove(position);
+ if (uplodFileState != null) {
+ path = uplodFileState.getFilePath();
+ try {
+ Call<BaseResponse> mCall = uplodFileStates.get(path).getThisCall();
+ if (mCall != null) {
+ mCall.cancel();
+ MyLog.d("progressRequestBody>>>" + "cancel銆嬨�嬨�媝ath:" + path);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ uplodFileStates.remove(path);
+ }
}
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
index 71b52a3..7302fde 100644
--- a/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
@@ -122,6 +122,7 @@
});
viewHolder.mIvDel.setVisibility(View.INVISIBLE);
viewHolder.circleProgressView.setVisibility(View.GONE);
+ viewHolder.maskLayerBg.setVisibility(View.GONE);
} else {
//鍒犻櫎鍥剧墖
viewHolder.mIvDel.setVisibility(View.VISIBLE);
@@ -163,19 +164,16 @@
}
// 鏇存柊杩涘害
- UplodFileState uplodFileState;
- if (TextUtils.isEmpty(media.getCompressPath())) {
- uplodFileState = fileStates.get(media.getRealPath());
- } else {
- uplodFileState = fileStates.get(media.getCompressPath());
- }
-
-
+ UplodFileState uplodFileState = TextUtils.isEmpty(media.getCompressPath())
+ ? fileStates.get(media.getRealPath())
+ : fileStates.get(media.getCompressPath());
if (uplodFileState != null) {
uplodFileState.setAdapterPosition(position);
MyLog.d("progressRequestBodyHolder>>>" + "State:" + uplodFileState.getState() + ">>>position:" + position + ">>>Progress: " + uplodFileState.getProgress());
if (uplodFileState.getState() == UplodFileState.STATE_UPDING) {
+ MyLog.d("progressRequestBodyHolder>>>" + "姝e湪涓婁紶");
+ viewHolder.postError.setVisibility(View.GONE);
if (uplodFileState.getProgress() < 100) {
viewHolder.maskLayerBg.setVisibility(View.VISIBLE);
viewHolder.circleProgressView.setVisibility(View.VISIBLE);
@@ -185,10 +183,12 @@
viewHolder.circleProgressView.setVisibility(View.GONE);
viewHolder.maskLayerBg.setVisibility(View.GONE);
}
- } else if (fileStates.get(media.getCompressPath()).getState() == UplodFileState.STATE_DONE) {
+ } else if (uplodFileState.getState() == UplodFileState.STATE_DONE) {
+ MyLog.d("progressRequestBodyHolder>>>" + "瀹屾垚");
viewHolder.maskLayerBg.setVisibility(View.GONE);
viewHolder.circleProgressView.setVisibility(View.GONE);
} else {
+ MyLog.d("progressRequestBodyHolder>>>" + "閿欒");
viewHolder.maskLayerBg.setVisibility(View.VISIBLE);
viewHolder.postError.setVisibility(View.VISIBLE);
viewHolder.circleProgressView.setVisibility(View.GONE);
@@ -202,11 +202,14 @@
int adapterPosition = viewHolder.getAbsoluteAdapterPosition();
mItemClickListener.onItemClick(v, adapterPosition);
});
+ viewHolder.postError.setOnClickListener(v -> {
+ mItemClickListener.onReUpload(uplodFileState);
+ });
}
if (mItemLongClickListener != null) {
viewHolder.itemView.setOnLongClickListener(v -> {
- int adapterPosition = viewHolder.getAbsoluteAdapterPosition();
+ int adapterPosition = viewHolder.getBindingAdapterPosition();
mItemLongClickListener.onItemLongClick(viewHolder, adapterPosition, v);
return true;
});
@@ -224,20 +227,18 @@
// 鏇存柊杩涘害鍙傛暟
if (fileStates.containsKey(uplodFileState.getFilePath())) {
+ // 鑾峰彇宸叉湁鐨� UplodFileState 瀵硅薄骞舵洿鏂拌繘搴�
+ UplodFileState existingState = fileStates.get(uplodFileState.getFilePath());
+ int position = existingState.getAdapterPosition();
+ existingState.setState(uplodFileState.getState());
if (uplodFileState.getState() == 0) {
- // 鑾峰彇宸叉湁鐨� UplodFileState 瀵硅薄骞舵洿鏂拌繘搴�
- UplodFileState existingState = fileStates.get(uplodFileState.getFilePath());
+ existingState.setState(uplodFileState.getState());
existingState.setProgress(uplodFileState.getProgress()); // 鏇存柊杩涘害
// 鑾峰彇杩涘害鏇存柊椤圭殑浣嶇疆
- int position = existingState.getAdapterPosition();
- if (position != RecyclerView.NO_POSITION) {
- // 閫氱煡閫傞厤鍣ㄥ埛鏂版寚瀹氫綅缃殑椤�
- notifyItemChanged(position);
- }
- } else if (uplodFileState.getState() == 2) {
-
}
-
+ if (position != RecyclerView.NO_POSITION) {
+ notifyItemChanged(position);
+ }
}
}
@@ -267,6 +268,11 @@
* @param position
*/
void onDeleteClick(int position);
+
+ /**
+ * 涓婁紶澶辫触鍚庨噸鏂颁笂浼�
+ */
+ void onReUpload(UplodFileState uplodFileState);
}
private OnItemLongClickListener mItemLongClickListener;
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java
index 9b8f46d..32f489e 100644
--- a/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/UplodFileState.java
@@ -18,6 +18,10 @@
public final static int STATE_DONE = 1;
//涓婁紶澶辫触
public final static int STATE_ERROR = 2;
+ //鍥剧墖绫诲瀷
+ public final static int IMG_TYPE = 1;
+ //瑙嗛绫诲瀷
+ public final static int VIDEO_TYPE = 2;
//0姝e湪涓婁紶 1涓婁紶瀹屾垚 2涓婁紶澶辫触
int state = 0;
@@ -35,6 +39,26 @@
int progress;
//adapter涓殑position
int adapterPosition = -1;
+ //涓婁紶绫诲瀷
+ int uploadType;
+ //鎵╁睍鍚�
+ String extName;
+
+ public String getExtName() {
+ return extName;
+ }
+
+ public void setExtName(String extName) {
+ this.extName = extName;
+ }
+
+ public int getUploadType() {
+ return uploadType;
+ }
+
+ public void setUploadType(int uploadType) {
+ this.uploadType = uploadType;
+ }
public int getAdapterPosition() {
return adapterPosition;
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
index aff517f..90d36d6 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -556,13 +556,16 @@
public void setMapMarker(MarkerBean markerBean) {
if (markerBean != null) {
if (webViewIsFinished) {
- mWebView.evaluateJavascript("javascript:addMarker(\"" + markerBean.getId() + "\",\"" + markerBean.getLng() + "\",\"" + markerBean.getLat() + "\",\"" + markerBean.getName() + "\")", new ValueCallback<String>() {
- @Override
- public void onReceiveValue(String value) {
- }
- });
- markerBeanSet.put(markerBean.getId(), markerBean);
-
+ if (!TextUtils.isEmpty(markerBean.getLng()) && !TextUtils.isEmpty(markerBean.getLat())) {
+ mWebView.evaluateJavascript("javascript:addMarker(\"" + markerBean.getId() + "\",\"" + markerBean.getLng() + "\",\"" + markerBean.getLat() + "\",\"" + markerBean.getName() + "\")", new ValueCallback<String>() {
+ @Override
+ public void onReceiveValue(String value) {
+ }
+ });
+ markerBeanSet.put(markerBean.getId(), markerBean);
+ } else {
+ MyLog.d("setMapMarker>" + markerBean.getName() + "缁忕含搴︿负绌�");
+ }
} else {
webNoFinishMarkerData.add(markerBean);
}
@@ -752,7 +755,6 @@
confirmDialog.show();
});
}
-
@Override
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
index b040919..7e5671c 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
@@ -1,5 +1,8 @@
package com.dayu.pipirrapp.net;
+import static com.dayu.pipirrapp.bean.net.UplodFileState.STATE_DONE;
+import static com.dayu.pipirrapp.bean.net.UplodFileState.STATE_ERROR;
+import static com.dayu.pipirrapp.bean.net.UplodFileState.STATE_UPDING;
import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
import android.annotation.SuppressLint;
@@ -290,15 +293,17 @@
// }
/**
- * 涓婁紶鏂囦欢
+ * 涓婁紶鍥剧墖鏂囦欢
*
* @param context
* @param uplodData
* @param listener
*/
public void uploadFile(final Context context, final UplodFileState uplodData, final UploadFileListener listener, final AddPictureAdapter adapter) {
- MyLog.d("progressRequestBody>>>" + "path:" + uplodData.getFilePath());
+
if (!TextUtils.isEmpty(uplodData.getFilePath())) {
+ MyLog.d("progressRequestBody>>>" + "path:" + uplodData.getFilePath()+">>>uploadType:"+uplodData.getUploadType());
+ uplodData.setState(STATE_UPDING);
File file = new File(uplodData.getFilePath());
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
ProgressRequestBody progressRequestBody = new ProgressRequestBody(requestBody, (bytesWritten, contentLength, done) -> {
@@ -318,23 +323,38 @@
});
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), progressRequestBody);
RequestBody description = RequestBody.create(MediaType.parse("text/plain"), "file description");
- Call<BaseResponse> uploadFile = apiService.uploadFile(body, description);
+ Call<BaseResponse> uploadFile = null;
+ switch (uplodData.getUploadType()) {
+ case UplodFileState.IMG_TYPE:
+ uploadFile = apiService.uploadImgFile(body, description);
+ break;
+ case UplodFileState.VIDEO_TYPE:
+ uploadFile = apiService.uploadVideoFile(body, description);
+ break;
+ default:
+ uploadFile = apiService.uploadImgFile(body, description);
+ break;
+ }
+
uplodData.setThisCall(uploadFile);
uploadFile.enqueue(new Callback<BaseResponse>() {
@Override
public void onResponse(Call<BaseResponse> call, Response<BaseResponse> response) {
if (response.body() != null) {
if (response.body().isSuccess()) {
- uplodData.setState(1);
+ uplodData.setState(STATE_DONE);
uplodData.setPostId(((LinkedTreeMap) response.body().getContent()).get("id").toString());
uplodData.setWebPath(((LinkedTreeMap) response.body().getContent()).get("webPath").toString());
listener.onBack(uplodData);
} else {
+ MyLog.d("progressRequestBody>>>" + response.body().getMsg());
if (uplodData.getNumber() <= uplodFilerepeatSize) {
uplodData.setNumber(uplodData.getNumber() + 1);
- uplodData.setState(2);
+ uplodData.setState(STATE_ERROR);
uploadFile(context, uplodData, listener, adapter);
} else {
+ uplodData.setState(STATE_ERROR);
+ uplodData.setNumber(0);
listener.onBack(uplodData);
}
}
@@ -343,22 +363,24 @@
@Override
public void onFailure(Call<BaseResponse> call, Throwable t) {
- MyLog.d("progressRequestBody>>>" + "onFailure:");
- if (uplodData.getNumber() <= uplodFilerepeatSize) {
- uplodData.setNumber(uplodData.getNumber() + 1);
- uplodData.setState(2);
- uploadFile(context, uplodData, listener, adapter);
- } else {
- listener.onBack(uplodData);
+ MyLog.d("progressRequestBody>>>" + "onFailure:" + t.getMessage());
+ if (!t.getMessage().equals("Canceled")) {
+ uplodData.setState(STATE_ERROR);
+ if (uplodData.getNumber() <= uplodFilerepeatSize) {
+ uplodData.setNumber(uplodData.getNumber() + 1);
+ uploadFile(context, uplodData, listener, adapter);
+ } else {
+ uplodData.setNumber(0);
+ listener.onBack(uplodData);
+ }
}
+
}
});
} else {
- uplodData.setState(UplodFileState.STATE_ERROR);
+ uplodData.setState(STATE_ERROR);
listener.onBack(uplodData);
}
-
-
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java
index 9f34339..1bafe3b 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiService.java
@@ -41,7 +41,7 @@
Observable<BaseResponse> requestPost(@Url String url, @Body Map<String, Object> params);
@GET()
- Observable<BaseResponse> requestGet(@Url String url, @QueryMap Map<String, Object> params,@Header("token") String token);
+ Observable<BaseResponse> requestGet(@Url String url, @QueryMap Map<String, Object> params, @Header("token") String token);
@GET()
Observable<BaseResponse> requestGet(@Url String url);
@@ -58,11 +58,15 @@
Call<BaseResponse> uploadFiles(@PartMap Map<String, RequestBody> map);
@Multipart
- @POST(Constants.BASE_URL + "/app/webFile/upPhoto")
- Call<BaseResponse> uploadFile(@Part MultipartBody.Part file,@Part("description") RequestBody description);
+ @POST(Constants.BASE_UPLOAD_FILE_URL + "/app/webFile/upPhoto")
+ Call<BaseResponse> uploadImgFile(@Part MultipartBody.Part file, @Part("description") RequestBody description);
+
+ @Multipart
+ @POST(Constants.BASE_UPLOAD_FILE_URL + "/app/webFile/upVideo")
+ Call<BaseResponse> uploadVideoFile(@Part MultipartBody.Part file, @Part("description") RequestBody description);
//鑾峰彇楠岃瘉鐮�
- @GET(Constants.BASE_URL+"/app/captcha/get")
+ @GET(Constants.BASE_URL + "/app/captcha/get")
Observable<CodeResult> getCode(@QueryMap Map<String, Object> params);
@GET()
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/Constants.java b/app/src/main/java/com/dayu/pipirrapp/net/Constants.java
index 1bb800f..9b4d3d1 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/Constants.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/Constants.java
@@ -6,9 +6,10 @@
* Description:
*/
public class Constants {
-// public static final String BASE_URL = "http://192.168.10.52:8088";
-public static final String BASE_URL = "https://no253541tf71.vicp.fun";
-//public static final String BASE_URL = "http://fve2iz.natappfree.cc";
+ // public static final String BASE_URL = "http://192.168.10.52:8088";
+ public static final String BASE_URL = "https://no253541tf71.vicp.fun";
+ //public static final String BASE_URL = "http://fve2iz.natappfree.cc";
+ public static final String BASE_UPLOAD_FILE_URL = "https://no253541tf71.vicp.fun";
/**
* 浠h〃璇锋眰鎴愬姛
*/
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/RetrofitClient.java b/app/src/main/java/com/dayu/pipirrapp/net/RetrofitClient.java
index fada46d..16facdb 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/RetrofitClient.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/RetrofitClient.java
@@ -1,6 +1,8 @@
package com.dayu.pipirrapp.net;
+import com.dayu.pipirrapp.BuildConfig;
+
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
@@ -35,9 +37,9 @@
builder.addInterceptor(new MyIntercepterApplication());
//娣诲姞鏃ュ織鎷︽埅鍣�
//娣诲姞鏁版嵁璇锋眰缁熶竴澶勭悊鎷︽埅鍣�
-// if (BuildConfig.DEBUG) {
+ if (BuildConfig.DEBUG) {
builder.addInterceptor(loggingInterceptor);
-// }
+ }
OkHttpClient client = builder.build();
// // 鍒涘缓GsonBuilder骞惰缃暱鏁村瀷搴忓垪鍖栫瓥鐣ヤ负瀛楃涓�
diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java b/app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java
new file mode 100644
index 0000000..5755332
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java
@@ -0,0 +1,58 @@
+package com.dayu.pipirrapp.tool;
+
+import android.content.Context;
+
+import com.dayu.pipirrapp.adapter.AddPictureAdapter;
+import com.dayu.pipirrapp.bean.net.UplodFileState;
+import com.dayu.pipirrapp.net.ApiManager;
+import com.dayu.pipirrapp.net.BaseResponse;
+import com.dayu.pipirrapp.net.upload.UploadFileListener;
+
+import java.util.Map;
+
+import retrofit2.Call;
+
+/**
+ * FileUploadUtils -
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2025-01-03
+ */
+public class FileUploadUtils {
+
+
+ /**
+ * 涓婁紶鍥剧墖鏂囦欢
+ *
+ * @param context
+ * @param uplodFileState
+ * @param uplodFileStates
+ * @param adapter
+ */
+ public static void uploadFile(Context context, UplodFileState uplodFileState, Map<String, UplodFileState> uplodFileStates, AddPictureAdapter adapter) {
+ ApiManager.getInstance().uploadFile(context, uplodFileState, state -> {
+ uplodFileStates.replace(state.getFilePath(), state);
+ adapter.updateProgress(uplodFileState);
+ }, adapter);
+ }
+
+ /**
+ * 褰撳叧闂璦ctivity鏃跺叧闂墍鏈夎姹�
+ * @param uplodFileStates
+ */
+ public static void cancelAllCall(Map<String, UplodFileState> uplodFileStates){
+ try {
+ for(UplodFileState uplodFileState:uplodFileStates.values()){
+ Call<BaseResponse> mCall =uplodFileState.getThisCall();
+ if (mCall != null) {
+ mCall.cancel();
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/ToastUtil.java b/app/src/main/java/com/dayu/pipirrapp/utils/ToastUtil.java
index 2a4ae79..4c95f5b 100644
--- a/app/src/main/java/com/dayu/pipirrapp/utils/ToastUtil.java
+++ b/app/src/main/java/com/dayu/pipirrapp/utils/ToastUtil.java
@@ -15,21 +15,35 @@
}
public static void showToastShort(Context context, String s) {
- if (s != null) {
- if (!TextUtils.isEmpty(s))
- makeText(context, s, Toast.LENGTH_SHORT).show();
+
+ if (!TextUtils.isEmpty(s)) {
+ if (context != null) {
+ if (!TextUtils.isEmpty(context.getPackageName())) {
+ makeText(context, s, Toast.LENGTH_SHORT).show();
+ }
+ }
}
+
}
public static void showToastLong(Context context, String s) {
if (!TextUtils.isEmpty(s)) {
- makeText(context, s, Toast.LENGTH_LONG).show();
+ if (context != null) {
+ if (!TextUtils.isEmpty(context.getPackageName())) {
+ makeText(context, s, Toast.LENGTH_LONG).show();
+ }
+ }
}
}
public static void showToast(Context context, String s) {
if (s != null) {
- makeText(context, s, Toast.LENGTH_LONG).show();
+ if (context != null) {
+ if (!TextUtils.isEmpty(context.getPackageName())) {
+ makeText(context, s, Toast.LENGTH_LONG).show();
+ }
+ }
+
}
}
diff --git a/app/src/main/res/layout/activity_change_pass_word.xml b/app/src/main/res/layout/activity_change_pass_word.xml
index 3387ea3..5045cd7 100644
--- a/app/src/main/res/layout/activity_change_pass_word.xml
+++ b/app/src/main/res/layout/activity_change_pass_word.xml
@@ -18,8 +18,10 @@
android:layout_marginTop="10dp"
android:background="@color/white"
android:hint="璇疯緭鍏ユ棫瀵嗙爜"
+ android:maxLines="1"
android:paddingLeft="20dp"
- android:paddingRight="20dp" />
+ android:paddingRight="20dp"
+ android:singleLine="true" />
<TextView
@@ -38,8 +40,10 @@
android:background="@color/white"
android:hint="璇疯緭鍏ユ柊瀵嗙爜"
android:inputType="textPassword"
+ android:maxLines="1"
android:paddingLeft="20dp"
- android:paddingRight="20dp" />
+ android:paddingRight="20dp"
+ android:singleLine="true" />
<EditText
android:id="@+id/newPsTwo"
@@ -49,8 +53,10 @@
android:background="@color/white"
android:hint="鍐嶆杈撳叆鏂板瘑鐮�"
android:inputType="textPassword"
+ android:maxLines="1"
android:paddingLeft="20dp"
- android:paddingRight="20dp" />
+ android:paddingRight="20dp"
+ android:singleLine="true" />
<TextView
diff --git a/app/src/main/res/layout/item_add_filter_image.xml b/app/src/main/res/layout/item_add_filter_image.xml
index 929c680..e69b66b 100644
--- a/app/src/main/res/layout/item_add_filter_image.xml
+++ b/app/src/main/res/layout/item_add_filter_image.xml
@@ -11,18 +11,7 @@
android:layout_height="match_parent"
tools:src="@color/app_color_f6" />
- <ImageView
- android:id="@+id/iv_del"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignTop="@id/fiv"
- android:layout_alignRight="@id/fiv"
- android:paddingLeft="10dp"
- android:paddingBottom="10dp"
- android:scaleType="centerInside"
- android:src="@mipmap/ic_item_delete"
- android:visibility="gone"
- tools:visibility="visible" />
+
<TextView
android:id="@+id/tv_duration"
@@ -48,6 +37,7 @@
android:id="@+id/mask_layer_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:visibility="gone"
android:background="@color/mask_layer_bg">
<com.king.view.circleprogressview.CircleProgressView
@@ -56,6 +46,7 @@
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
+ app:cpvLabelTextSize="15sp"
app:cpvShowTick="false"
app:cpvStrokeWidth="2dp" />
@@ -63,9 +54,20 @@
android:id="@+id/postError"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_margin="40dp"
+ android:padding="20dp"
android:src="@drawable/ic_error_picture" />
</RelativeLayout>
-
+ <ImageView
+ android:id="@+id/iv_del"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignTop="@id/fiv"
+ android:layout_alignRight="@id/fiv"
+ android:paddingLeft="10dp"
+ android:paddingBottom="10dp"
+ android:scaleType="centerInside"
+ android:src="@mipmap/ic_item_delete"
+ android:visibility="gone"
+ tools:visibility="visible" />
</com.luck.picture.lib.widget.SquareRelativeLayout>
\ No newline at end of file
--
Gitblit v1.8.0