From 4f7f99c6ea914bcd38de78bd8371be566026b905 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 26 二月 2025 15:54:14 +0800
Subject: [PATCH] -为按钮和列表项添加波纹效果,以获得更好的视觉反馈 -改进MapFragment中的底部布局动画 -在MapFragment中添加设备状态和RTU地址显示 -更新BaseListResult以支持泛型类型 -为设备数据添加IntakeListResult和IntakeResult -通过数据库支持增强标记位置更新功能 -添加电话拨号意图以分隔标记详细信息 -通过过期检查改进磁贴缓存 -添加问题报告的确认对话框 -更新登录活动以限制用户名长度 -为波纹效果和UI元素添加新颜色 -重构XML布局以使用新的波纹图 -改进MapFragment中的错误处理和用户反馈
---
app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java | 92 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 86 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java b/app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java
index 5755332..62b4a6c 100644
--- a/app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java
+++ b/app/src/main/java/com/dayu/pipirrapp/tool/FileUploadUtils.java
@@ -1,13 +1,18 @@
package com.dayu.pipirrapp.tool;
+import static com.luck.picture.lib.thread.PictureThreadUtils.runOnUiThread;
+
import android.content.Context;
+import android.text.TextUtils;
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 com.luck.picture.lib.entity.LocalMedia;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import retrofit2.Call;
@@ -38,21 +43,96 @@
}
/**
- * 褰撳叧闂璦ctivity鏃跺叧闂墍鏈夎姹�
+ * 褰撳叧闂璦ctivity鏃跺叧闂墍鏈夎姹�
+ *
* @param uplodFileStates
*/
- public static void cancelAllCall(Map<String, UplodFileState> uplodFileStates){
+ public static void cancelAllCall(Map<String, UplodFileState> uplodFileStates) {
try {
- for(UplodFileState uplodFileState:uplodFileStates.values()){
- Call<BaseResponse> mCall =uplodFileState.getThisCall();
+ for (UplodFileState uplodFileState : uplodFileStates.values()) {
+ Call mCall = uplodFileState.getThisCall();
if (mCall != null) {
mCall.cancel();
}
}
} catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace();
}
}
+ // 鏇存柊UI
+ public static void updateUI(ArrayList<LocalMedia> result, AddPictureAdapter mAdapter) {
+ runOnUiThread(() -> {
+ boolean isMaxSize = result.size() == mAdapter.getSelectMax();
+ int oldSize = mAdapter.getData().size();
+ mAdapter.notifyItemRangeRemoved(0, isMaxSize ? oldSize + 1 : oldSize);
+ mAdapter.getData().clear();
+ mAdapter.getData().addAll(result);
+ mAdapter.notifyItemRangeInserted(0, result.size());
+ });
+ }
+
+ public static void cancelRemovedUploads(ArrayList<LocalMedia> result, Map<String, UplodFileState> uplodFileStates) {
+ List<String> pathsToRemove = new ArrayList<>();
+ for (UplodFileState uplodFileState : uplodFileStates.values()) {
+ String filePath = uplodFileState.getFilePath();
+ // 妫�鏌� result 涓槸鍚﹀寘鍚鏂囦欢璺緞
+ boolean isInResult = false;
+ for (LocalMedia media : result) {
+ String compressPath = media.getCompressPath();
+ //鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗囧苟娣诲姞uplodFileStates涓�
+ if (TextUtils.isEmpty(compressPath)) {
+ compressPath = media.getRealPath();
+ }
+ if (compressPath.equals(filePath)) {
+ isInResult = true;
+ break;
+ }
+ }
+ // 濡傛灉 result 涓病鏈夎璺緞锛屽垯灏嗗叾鍔犲叆寰呯Щ闄ゅ垪琛�
+ if (!isInResult) {
+ try {
+ //娌℃湁璇ユ枃浠朵互鍚庡彇娑堜笂浼�
+ uplodFileState.getThisCall().cancel();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ pathsToRemove.add(filePath);
+ }
+ }
+ for (String removeFile : pathsToRemove) {
+ uplodFileStates.remove(removeFile);
+ }
+ }
+
+ /**
+ *
+ * @param context
+ * @param media
+ * @param uplodFileStates
+ * @param mAdapter
+ */
+ public static void creatAndUploadFile(Context context, LocalMedia media, Map<String, UplodFileState> uplodFileStates, AddPictureAdapter mAdapter) {
+ String compressPath = media.getCompressPath();
+ //鍒ゆ柇鏄惁鏈夎繖涓矾寰勶紝娌℃湁鐨勮瘽涓婁紶璇ュ浘鐗囧苟娣诲姞uplodFileStates涓�
+ if (TextUtils.isEmpty(compressPath)) {
+ compressPath = media.getRealPath();
+ }
+ if (!uplodFileStates.containsKey(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);
+ // 鎵ц涓婁紶鍥剧墖鐨勬搷浣�
+ FileUploadUtils.uploadFile(context, uplodFileState, uplodFileStates, mAdapter);
+ }
+ }
+
}
--
Gitblit v1.8.0