From 65a6bde49652558ada5daa15eca03d5061465a00 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 27 十二月 2024 18:00:46 +0800
Subject: [PATCH] 1.图片上传进度相关代码。 2.修复地图定位图标不居中问题。

---
 app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java |   51 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 32 insertions(+), 19 deletions(-)

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 12f0033..d0d399a 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
@@ -5,10 +5,12 @@
 import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.Intent;
+import android.text.TextUtils;
 import android.util.Log;
 
 import com.dayu.pipirrapp.MyApplication;
 import com.dayu.pipirrapp.activity.LoginActivity;
+import com.dayu.pipirrapp.adapter.AddPictureAdapter;
 import com.dayu.pipirrapp.bean.net.CodeResult;
 import com.dayu.pipirrapp.bean.net.UplodFileState;
 import com.dayu.pipirrapp.bean.net.WeatherResponse;
@@ -16,6 +18,7 @@
 import com.dayu.pipirrapp.net.subscribers.CodeListener;
 import com.dayu.pipirrapp.net.subscribers.ProgressSubscriber;
 import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.net.upload.IMGProgressLisener;
 import com.dayu.pipirrapp.net.upload.ProgressListener;
 import com.dayu.pipirrapp.net.upload.ProgressRequestBody;
 import com.dayu.pipirrapp.net.upload.UploadFileListener;
@@ -145,7 +148,12 @@
                             }
                             BaseResponse<T> response = new BaseResponse<>();
                             response.setCode(tem.getCode());
-                            response.setMsg(tem.getMsg());
+                            if (!TextUtils.isEmpty(tem.getMsg())){
+                                response.setMsg(tem.getMsg());
+                            }else {
+                                response.setMsg("");
+                            }
+
 
                             if (tClass != null) {
                                 if (tem.getContent() instanceof Map) {
@@ -280,6 +288,10 @@
     }
 
 
+//    public void uploadFile(final Context context, final UplodFileState uplodData, final UploadFileListener listener) {
+//        uploadFile(context, uplodData, listener, null);
+//    }
+
     /**
      * 涓婁紶鏂囦欢
      *
@@ -287,22 +299,24 @@
      * @param uplodData
      * @param listener
      */
-    public void uploadFile(final Context context, final UplodFileState uplodData, final UploadFileListener listener) {
-
+    public void uploadFile(final Context context, final UplodFileState uplodData, final UploadFileListener listener, final AddPictureAdapter adapter) {
+        MyLog.d("progressRequestBody>>>" + "path:" + uplodData.getFilePath() );
         File file = new File(uplodData.getFilePath());
         RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
-        ProgressRequestBody progressRequestBody = new ProgressRequestBody(requestBody, new ProgressListener() {
-            @Override
-            public void onProgress(long bytesWritten, long contentLength, boolean done) {
-                // 鏇存柊杩涘害鏉℃垨杩涜鍏朵粬鎿嶄綔
-                int progress = (int) (100 * bytesWritten / contentLength);
-                // 渚嬪锛氭洿鏂� ProgressBar 鎴栨樉绀鸿繘搴�
-                runOnUiThread(() -> {
-                    // 杩涘害鏉℃洿鏂颁唬鐮�
-                    // progressBar.setProgress(progress);
-                    MyLog.d("progressRequestBody>>>" + "涓婁紶杩涘害: " + progress + "%");
-                });
-            }
+        ProgressRequestBody progressRequestBody = new ProgressRequestBody(requestBody, (bytesWritten, contentLength, done) -> {
+//            MyLog.d("progressRequestBody>>>" + "bytesWritten:" + bytesWritten + ">>>contentLength: " + contentLength );
+            // 鏇存柊杩涘害鏉℃垨杩涜鍏朵粬鎿嶄綔
+            int progress = (int) (100 * bytesWritten / contentLength);
+            // 渚嬪锛氭洿鏂� ProgressBar 鎴栨樉绀鸿繘搴�
+            runOnUiThread(() -> {
+                uplodData.setProgress(progress);
+                // 杩涘害鏉℃洿鏂颁唬鐮�
+                if (adapter != null && uplodData.getAdapterPosition() != -1) {
+                    adapter.updateProgress(uplodData);
+                }
+                MyLog.d("progressRequestBody>>>" + "adapterPosition:" + uplodData.getAdapterPosition() + ">>>涓婁紶杩涘害: " + progress + "%");
+            });
+
         });
         MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), progressRequestBody);
         RequestBody description = RequestBody.create(MediaType.parse("text/plain"), "file description");
@@ -314,14 +328,14 @@
                 if (response.body() != null) {
                     if (response.body().isSuccess()) {
                         uplodData.setState(1);
-                        uplodData.setId(((LinkedTreeMap) response.body().getContent()).get("id").toString());
+                        uplodData.setPostId(((LinkedTreeMap) response.body().getContent()).get("id").toString());
                         uplodData.setWebPath(((LinkedTreeMap) response.body().getContent()).get("webPath").toString());
                         listener.onBack(uplodData);
                     } else {
                         if (uplodData.getNumber() <= uplodFilerepeatSize) {
                             uplodData.setNumber(uplodData.getNumber() + 1);
                             uplodData.setState(2);
-                            uploadFile(context, uplodData, listener);
+                            uploadFile(context, uplodData, listener, adapter);
                         } else {
                             listener.onBack(uplodData);
                         }
@@ -334,7 +348,7 @@
                 if (uplodData.getNumber() <= uplodFilerepeatSize) {
                     uplodData.setNumber(uplodData.getNumber() + 1);
                     uplodData.setState(2);
-                    uploadFile(context, uplodData, listener);
+                    uploadFile(context, uplodData, listener, adapter);
                 } else {
                     listener.onBack(uplodData);
                 }
@@ -342,7 +356,6 @@
         });
 
     }
-
 
 
     /**

--
Gitblit v1.8.0