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/adapter/AddPictureAdapter.java | 82 +++++++++++++++++++++++++---------------
1 files changed, 51 insertions(+), 31 deletions(-)
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 b30b0fa..94c9611 100644
--- a/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
@@ -2,6 +2,7 @@
import android.content.Context;
import android.net.Uri;
+import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -44,7 +45,7 @@
private final ArrayList<LocalMedia> list = new ArrayList<>();
Map<String, UplodFileState> fileStates;
private int selectMax = 9;
- private Context mContext;
+ private final Context mContext;
public AddPictureAdapter(Context context, List<LocalMedia> result, Map<String, UplodFileState> fileStates) {
@@ -121,6 +122,7 @@
});
viewHolder.mIvDel.setVisibility(View.INVISIBLE);
viewHolder.circleProgressView.setVisibility(View.GONE);
+ viewHolder.maskLayerBg.setVisibility(View.GONE);
} else {
//鍒犻櫎鍥剧墖
viewHolder.mIvDel.setVisibility(View.VISIBLE);
@@ -158,30 +160,42 @@
.centerCrop()
.placeholder(R.color.app_color_f6)
.diskCacheStrategy(DiskCacheStrategy.ALL)
+ .thumbnail(0.25f)
.into(viewHolder.mImg);
}
// 鏇存柊杩涘害
- UplodFileState uplodFileState = fileStates.get(media.getCompressPath());
- uplodFileState.setAdapterPosition(position);
- MyLog.d("progressRequestBodyHolder>>>" + "State:" + uplodFileState.getState() + ">>>position:" + position + ">>>Progress: " + uplodFileState.getProgress());
+ UplodFileState uplodFileState = TextUtils.isEmpty(media.getCompressPath())
+ ? fileStates.get(media.getRealPath())
+ : fileStates.get(media.getCompressPath());
+ if (uplodFileState != null) {
+ MyLog.d("progressRequestBodyHolder>>>" + "path:" + uplodFileState.getFilePath() + ">>>position:" + position);
+ uplodFileState.setAdapterPosition(position);
+ MyLog.d("progressRequestBodyHolder>>>" + "State:" + uplodFileState.getState() + ">>>position:" + position + ">>>Progress: " + uplodFileState.getProgress());
- if (uplodFileState.getState() == UplodFileState.STATE_UPDING) {
- if (uplodFileState.getProgress() < 100) {
- viewHolder.maskLayerBg.setVisibility(View.VISIBLE);
- viewHolder.circleProgressView.setVisibility(View.VISIBLE);
- viewHolder.circleProgressView.setProgress(uplodFileState.getProgress());
-
- } else {
- viewHolder.circleProgressView.setVisibility(View.GONE);
+ 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);
+ viewHolder.circleProgressView.setProgress(uplodFileState.getProgress());
+ } else {
+ viewHolder.circleProgressView.setVisibility(View.GONE);
+ viewHolder.maskLayerBg.setVisibility(View.GONE);
+ }
+ } 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);
}
- } else if (fileStates.get(media.getCompressPath()).getState() == UplodFileState.STATE_DONE) {
- viewHolder.maskLayerBg.setVisibility(View.GONE);
- viewHolder.circleProgressView.setVisibility(View.GONE);
- } else {
- viewHolder.maskLayerBg.setVisibility(View.VISIBLE);
}
+
//itemView 鐨勭偣鍑讳簨浠�
if (mItemClickListener != null) {
@@ -189,11 +203,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;
});
@@ -211,20 +228,18 @@
// 鏇存柊杩涘害鍙傛暟
if (fileStates.containsKey(uplodFileState.getFilePath())) {
- if (uplodFileState.getState()==0){
- // 鑾峰彇宸叉湁鐨� UplodFileState 瀵硅薄骞舵洿鏂拌繘搴�
- UplodFileState existingState = fileStates.get(uplodFileState.getFilePath());
+ // 鑾峰彇宸叉湁鐨� UplodFileState 瀵硅薄骞舵洿鏂拌繘搴�
+ UplodFileState existingState = fileStates.get(uplodFileState.getFilePath());
+ int position = existingState.getAdapterPosition();
+ existingState.setState(uplodFileState.getState());
+ if (uplodFileState.getState() == 0) {
+ 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);
+ }
}
}
@@ -254,6 +269,11 @@
* @param position
*/
void onDeleteClick(int position);
+
+ /**
+ * 涓婁紶澶辫触鍚庨噸鏂颁笂浼�
+ */
+ void onReUpload(UplodFileState uplodFileState);
}
private OnItemLongClickListener mItemLongClickListener;
@@ -294,8 +314,8 @@
mIvDel = view.findViewById(R.id.iv_del);
tvDuration = view.findViewById(R.id.tv_duration);
circleProgressView = view.findViewById(R.id.cpv);
- maskLayerBg=view.findViewById(R.id.mask_layer_bg);
- postError=view.findViewById(R.id.postError);
+ maskLayerBg = view.findViewById(R.id.mask_layer_bg);
+ postError = view.findViewById(R.id.postError);
}
}
--
Gitblit v1.8.0