From 092bf21368ea824e9dc22467166960219165dc00 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 21 二月 2025 17:32:59 +0800
Subject: [PATCH] 1.我的界面每个item添加点击效果。 2.更新本地数据添加二次确认。
---
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