From 592ad3b6524ff524c999674b272a653ef062780e Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 30 一月 2024 13:47:17 +0800
Subject: [PATCH] 2024年01月30日13:47:09
---
app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java | 284 +++++++++++++++---------------
app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java | 2
app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java | 146 ++++++++++-----
app/src/main/res/layout/item_message.xml | 9
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java | 85 +++-----
app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java | 2
6 files changed, 279 insertions(+), 249 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java b/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
index b980dc7..60889ae 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
@@ -9,7 +9,7 @@
/*********鏄惁姝e紡鏈嶅姟鍣�*********/
- private static final boolean isOnlineServer = true;
+ private static final boolean isOnlineServer = false;
/*********姝e紡鐜*********/
private static final String APP_KEY_ONLINE = "CSZEMDJL";
private static final String APP_SECRET_ONLINE = "CSZEMDKBCSZEMDKR";
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
index 43e9624..b8fa1bb 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -23,7 +23,8 @@
public class HdlMessageLogic {
private static volatile HdlMessageLogic sHdlMessageLogic;
- private int pageSize = 50;//椤垫暟
+ private final int pageSize = 50;//椤垫暟
+ private List<MessageBean> mListMessage = new ArrayList<>();
/**
* 鑾峰彇褰撳墠瀵硅薄
@@ -41,6 +42,7 @@
}
return sHdlMessageLogic;
}
+
/**
* 鑾峰彇鍙戠敓涓紦瀛樺垪琛�
@@ -242,8 +244,29 @@
}
- private List<MessageBean> mListMessage = new ArrayList<>();
+ /**
+ * 鑾峰彇鏈鐞嗙紦瀛樻秷鎭暟閲�
+ */
+ public String getMessageUntreatedMemoryCount() {
+ if (this.mListMessage == null || this.mListMessage.size() == 0) {
+ return "0";
+ }
+ List<MessageBean> newList = new ArrayList<>();
+ for (int i = 0; i < mListMessage.size(); i++) {
+ MessageBean messageBean = mListMessage.get(i);
+ if (messageBean == null) {
+ continue;
+ }
+ if (!messageBean.getStatus().equals(MessageStateType.untreated)) {
+ continue;
+ }
+ if (!messageBean.isRead()) {
+ newList.add(messageBean);
+ }
+ }
+ return newList.size() + "";
+ }
/**
* 鑾峰彇鏈鐞嗘秷鎭暟閲�
@@ -314,7 +337,7 @@
json.addProperty("status", messageStateType);
}
json.addProperty("pageNo", 1);//椤电爜
- json.addProperty("pageSize", 50);//椤垫暟
+ json.addProperty("pageSize", pageSize);//椤垫暟
List<MessageBean> list = new ArrayList<>();
HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
@@ -384,74 +407,36 @@
}
/**
- * 鑾峰彇娑堟伅鍒楄〃
+ * 鑾峰彇鎸囧畾椤电殑鑾峰彇娑堟伅鍒楄〃
*
+ * @param pageNo 椤电爜
* @param messageStateType all:鍏ㄩ儴,UNTREATED:鏈鐞�,PROCESSED:宸插鐞�;
* @param cloudCallBeak -
*/
- private void getMessageList(int pageNo, String messageStateType, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
+ public void getPageNoMessageList(int pageNo, String messageStateType, CloudCallBeak<MessageListClass> cloudCallBeak) {
String requestUrl = HttpApi.POST_Message_List;
JsonObject json = new JsonObject();
if (!MessageStateType.all.equals(messageStateType)) {
json.addProperty("status", messageStateType);
}
- json.addProperty("pageNo", 1);//椤电爜
- json.addProperty("pageSize", 50);//椤垫暟
+ json.addProperty("pageNo", pageNo);//椤电爜
+ json.addProperty("pageSize", pageSize);//椤垫暟
- List<MessageBean> list = new ArrayList<>();
HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
@Override
public void onSuccess(String jsonStr) {
if (TextUtils.isEmpty(jsonStr)) {
if (cloudCallBeak != null) {
- cloudCallBeak.onSuccess(new ArrayList<>());
+ cloudCallBeak.onSuccess(new MessageListClass());
}
return;
}
Gson gson = new Gson();
MessageListClass oldMessageListClass = gson.fromJson(jsonStr, MessageListClass.class);
- list.addAll(oldMessageListClass.getList());
setListMessage(oldMessageListClass.getList());
- //鎬诲叡鏈夊灏戦〉
- long totalPage = oldMessageListClass.totalPage;
- if (totalPage < 2) {
- if (cloudCallBeak != null) {
- cloudCallBeak.onSuccess(list);
- }
- return;
- }
- //璁板綍璇锋眰鏉℃暟
- AtomicInteger atomicInteger = new AtomicInteger(0);
- //浠庣浜岄〉鑾峰彇鏁版嵁
- for (int i = 2; i <= totalPage; i++) {
- json.addProperty("pageNo", i);//鏇存柊椤电爜
- HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
- @Override
- public void onSuccess(String jsonStr) {
- atomicInteger.set(atomicInteger.get() + 1);
- MessageListClass newMessageListClass = gson.fromJson(jsonStr, MessageListClass.class);
- list.addAll(newMessageListClass.getList());
- setListMessage(newMessageListClass.getList());
- if (atomicInteger.get() == totalPage - 1) {
- //鏈�鍚庝竴鏉¢��鍑�
- if (cloudCallBeak != null) {
- cloudCallBeak.onSuccess(list);
- }
- }
- }
-
- @Override
- public void onFailure(HDLException e) {
- atomicInteger.set(atomicInteger.get() + 1);
- if (atomicInteger.get() == totalPage - 1) {
- //鏈�鍚庝竴鏉¢��鍑�
- if (cloudCallBeak != null) {
- cloudCallBeak.onSuccess(list);
- }
- }
- }
- });
+ if (cloudCallBeak != null) {
+ cloudCallBeak.onSuccess(oldMessageListClass);
}
}
@@ -533,7 +518,7 @@
}
- static class MessageListClass {
+ public static class MessageListClass {
//鎬绘潯鏁�
private long totalCount;
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
index 8718cff..6bff9c1 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
@@ -114,7 +114,7 @@
}
String acc = "13375012441";
- String pws = "a123456";
+ String pws = "123456";
//娴嬭瘯鐢�
viewBinding.homeLoginAccountEt.setText(acc);
viewBinding.homeLoginPasswordEt.setText(pws);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java
index e672fd4..016b4c4 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java
@@ -5,6 +5,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
+import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
@@ -39,6 +40,7 @@
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -50,10 +52,9 @@
private MessageAdapter messageNascentAdapter;
private final List<MessageBean> mList = new ArrayList<>();
+ private int currentPage = 0; // 褰撳墠椤电爜
+ private int total = 0; // 鏈�鍚庨〉鐮�
- // 娣诲姞涓婃媺鍔犺浇鏇村鐨勯�昏緫
- private int visibleThreshold = 5; // 褰撳墠鏄剧ず鐨勬渶鍚庝竴椤逛笌鎬诲叡鏈夊灏戞潯鏁版嵁涔嬮棿鐨勫樊鍊�
- private int currentPage = 1; // 褰撳墠椤电爜
private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
LinearLayoutManager layoutManager;
@@ -85,9 +86,10 @@
viewBinding.messageNascentSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
- mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃
- updateListData();//娓呯┖涔嬪墠缂撳瓨,鍥犱负閬囧埌涓�涓棶棰樼寷鎷夌殑鏃跺�欐姤閿�;
- getNascentMessageList(false);
+ viewBinding.messageNascentSrl.setRefreshing(false);
+// mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃
+// updateListData();//娓呯┖涔嬪墠缂撳瓨,鍥犱负閬囧埌涓�涓棶棰樼寷鎷夌殑鏃跺�欐姤閿�;
+// getNascentMessageList(false);
}
});
messageNascentAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() {
@@ -107,25 +109,22 @@
viewBinding.messageNascentRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
- super.onScrolled(recyclerView, dx, dy);
+// super.onScrolled(recyclerView, dx, dy);
-// if (dy <= 0) {
-// //绛変簬0鏄《閮�
-// return;
-// }
-// LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
-// assert layoutManager != null;
-// // 鍙湁鍨傜洿甯冨眬鎵嶄細瑙﹀彂涓婃媺浜嬩欢
-// if (!layoutManager.canScrollVertically()) {
-// return;
-// }
-//
-// int totalItemCount = layoutManager.getItemCount();
-// int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();
-//
-// if (!isLoadingMore && totalItemCount <= (lastVisibleItemPosition + visibleThreshold)) {
-//// loadNextPage();
-// }
+ LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
+ if (layoutManager == null) {
+ return;
+ }
+ int visibleItemCount = layoutManager.getChildCount();
+ int totalItemCount = layoutManager.getItemCount();
+ int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
+ if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
+ if (!isLoadingMore) {
+ // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+ HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+ loadNextPageNascentMessageList(++currentPage, false);
+ }
+ }
}
});
}
@@ -141,15 +140,24 @@
* 鍒锋柊鍒楄〃鏁版嵁
*/
private void updateListData() {
- if (this.messageNascentAdapter != null) {
- this.messageNascentAdapter.setList(mList);
- this.messageNascentAdapter.notifyDataSetChanged();
- }
- //鍒锋柊銆愬彂鐢熶腑銆戜俊鎭暟閲忔�绘暟
- this.refreshNascentCount();
- this.nullDataUpdateUi();
-
-
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ //鏇存柊缂撳瓨鏁版嵁
+ initData();
+ //鍒锋柊鍒楄〃
+ if (messageNascentAdapter != null) {
+ messageNascentAdapter.setList(mList);
+ messageNascentAdapter.notifyDataSetChanged();
+ }
+ //鏄剧ず鍙戠敓涓秷鎭�绘暟閲�
+ refreshNascentCount();
+ //鏄剧ず娌℃暟鎹甎i鏍峰紡
+ nullDataUpdateUi();
+ //鏄剧ず鏈淇℃伅鎬绘暟閲�
+ getUnreadCount();
+ }
+ });
}
/**
@@ -181,8 +189,8 @@
if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) {
if (eventBus.getType().equals(MessageFunctionTabSwitch.nascent.toString())) {
initData();
- getNascentMessageList(true);
- getUnreadCount();
+ loadNextPageNascentMessageList(1, true);
+// getUnreadCount();
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
@@ -193,126 +201,121 @@
//娑堟伅璇︽儏鍥炶皟
initData();
updateListData();
- getUnreadCount();
+// getUnreadCount();
}
}
}
/**
- * 鑾峰彇鍙戠敓涓殑娑堟伅鍒楄〃
+ * 鍔犺浇涓�椤垫暟鎹�
*
+ * @param pageNo 椤垫暟
* @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
*/
- private void getNascentMessageList(boolean isShowLoading) {
- if (mList.size() == 0) {
- if (isShowLoading) {
- showLoading();
- }
- HdlMessageLogic.getInstance().getNascentMessageList(new CloudCallBeak<List<MessageBean>>() {
- @Override
- public void onSuccess(List<MessageBean> list) {
- HdlThreadLogic.runMainThread(new Runnable() {
- @Override
- public void run() {
- if (isShowLoading) {
- hideLoading();
- }
- if (!isShowLoading) {
- viewBinding.messageNascentSrl.setRefreshing(false);
- }
-
- if (list != null && list.size() != 0) {
- mList.addAll(list);
- updateListData();
- } else {
- nullDataUpdateUi();
- }
- }
- });
-
- }
-
- @Override
- public void onFailure(HDLException e) {
- if (isShowLoading) {
- hideLoading();
- }
- if (!isShowLoading) {
- viewBinding.messageNascentSrl.setRefreshing(false);
- }
- }
- });
+ private void loadNextPageNascentMessageList(int pageNo, boolean isShowLoading) {
+ if (pageNo == 1 && mList.size() > 0) {
+ //缂撳瓨鏁版嵁娌℃湁鎵嶅彲浠ヨ鍙栫涓�椤�
+ return;
}
- }
+ if (currentPage > total) {
+ //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
+ return;
+ }
+ isLoadingMore = true;//鏍囪璇诲彇鐘舵��
+ if (isShowLoading) {
+ showLoading();
+ }
+ HdlMessageLogic.getInstance().getPageNoMessageList(pageNo, MessageStateType.untreated, new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
+ @Override
+ public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
+ if (messageListClass != null) {
+ total = (int) messageListClass.getTotalPage();
+ currentPage = (int) messageListClass.getPageNo();
+ updateListData();
+ }
+ isLoadingMore = false;
+ if (isShowLoading) {
+ hideLoading();
+ }
+ }
-// private void loadNextPage() {
-// isLoadingMore = true;
-//
-// // 妯℃嫙缃戠粶璇锋眰鑾峰彇鏂扮殑鏁版嵁
-// Handler handler = new Handler();
-// handler.postDelayed(() -> {
-// List<MessageBean> newData = fetchNewDataFromServer(currentPage++);
-// messageNascentAdapter.setList(newData);
-// isLoadingMore = false;
-// }, 2000);
-// }
-//
-// private List<MessageBean> fetchNewDataFromServer(int pageNumber) {
-// // TODO: 浠庢湇鍔″櫒鑾峰彇鏂扮殑鏁版嵁骞惰繑鍥�
-// pageNumber++;
-// List<MessageBean> newData = HdlMessageLogic.getInstance().getAllMessageList();
-// return newData;
-// }
+ @Override
+ public void onFailure(HDLException e) {
+ if (currentPage > 1) {
+ --currentPage;
+ }
+ isLoadingMore = false;
+ if (isShowLoading) {
+ hideLoading();
+ }
+ }
+ });
+ }
/**
* 璇诲彇娑堟伅銆愭湭璇绘暟閲忋��
*/
private void getUnreadCount() {
- HdlMessageLogic.getInstance().getMessageUntreatedCount(new CloudCallBeak<String>() {
- @Override
- public void onSuccess(String data) {
-
- HdlThreadLogic.runMainThread(new Runnable() {
- @Override
- public void run() {
- JSONObject jsonObject = JSON.parseObject(data);
-// if (jsonObject.containsKey("untreatedCount")) {
-// //鏈鐞嗘暟閲�
-// jsonObject.getString("untreatedCount");
-// }
- String unreadCount = "0";
- if (jsonObject.containsKey("unreadCount")) {
- //鏈鏁伴噺
- unreadCount = jsonObject.getString("unreadCount");
- }
- TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
- if (textView != null) {
- if (TextUtils.isEmpty(unreadCount) || unreadCount.equals("0")) {
- textView.setVisibility(View.GONE);
- } else {
- if (unreadCount.length() > 2) {
- //澶т簬3浣嶆暟,榛樿99+
- unreadCount = "99+";
- }
- textView.setVisibility(View.VISIBLE);
- textView.setText(unreadCount);
- }
-
-
- }
- }
- });
-
- }
-
- @Override
- public void onFailure(HDLException e) {
- TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
- if (textView != null) {
- textView.setVisibility(View.GONE);
+ String untreatedMemoryCount = HdlMessageLogic.getInstance().getMessageUntreatedMemoryCount();
+ TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
+ if (textView != null) {
+ if (TextUtils.isEmpty(untreatedMemoryCount) || untreatedMemoryCount.equals("0")) {
+ textView.setVisibility(View.GONE);
+ } else {
+ if (untreatedMemoryCount.length() > 2) {
+ //澶т簬3浣嶆暟,榛樿99+
+ untreatedMemoryCount = "99+";
}
+ textView.setVisibility(View.VISIBLE);
+ textView.setText(untreatedMemoryCount);
}
- });
+ }
+//
+// HdlMessageLogic.getInstance().getMessageUntreatedCount(new CloudCallBeak<String>() {
+// @Override
+// public void onSuccess(String data) {
+//
+// HdlThreadLogic.runMainThread(new Runnable() {
+// @Override
+// public void run() {
+// JSONObject jsonObject = JSON.parseObject(data);
+//// if (jsonObject.containsKey("untreatedCount")) {
+//// //鏈鐞嗘暟閲�
+//// jsonObject.getString("untreatedCount");
+//// }
+// String unreadCount = "0";
+// if (jsonObject.containsKey("unreadCount")) {
+// //鏈鏁伴噺
+// unreadCount = jsonObject.getString("unreadCount");
+// }
+// TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
+// if (textView != null) {
+// if (TextUtils.isEmpty(unreadCount) || unreadCount.equals("0")) {
+// textView.setVisibility(View.GONE);
+// } else {
+// if (unreadCount.length() > 2) {
+// //澶т簬3浣嶆暟,榛樿99+
+// unreadCount = "99+";
+// }
+// textView.setVisibility(View.VISIBLE);
+// textView.setText(unreadCount);
+// }
+//
+//
+// }
+// }
+// });
+//
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
+// if (textView != null) {
+// textView.setVisibility(View.GONE);
+// }
+// }
+// });
}
@@ -320,9 +323,6 @@
* 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
*/
private void nullDataUpdateUi() {
- HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity,
- viewBinding.nullDataIc.getRoot(),
- viewBinding.nullDataIc.nullDataGifAnimationIv,
- viewBinding.nullDataIc.nullDataTv, getString(R.string.message_alarm_data_null), mList.size() > 0);
+ HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.message_alarm_data_null), mList.size() > 0);
}
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
index ec05cd8..2a101f7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
@@ -4,7 +4,9 @@
import android.os.Bundle;
import android.widget.TextView;
+import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.gson.Gson;
@@ -40,6 +42,10 @@
FragmentRecoverMessageBinding viewBinding;
private MessageAdapter messageRecoverAdapter;
+ private int currentPage = 0; // 褰撳墠椤电爜
+ private int total = 0; // 鏈�鍚庨〉鐮�
+
+ private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
private final List<MessageBean> mList = new ArrayList<>();
@@ -71,9 +77,10 @@
viewBinding.messageRecoverSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
- mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃
- updateListData();//娓呯┖涔嬪墠缂撳瓨,鍥犱负閬囧埌涓�涓棶棰樼寷鎷夌殑鏃跺�欐姤閿�;
- getRecoverMessageList(false);
+ viewBinding.messageRecoverSrl.setRefreshing(false);
+// mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃
+// updateListData();//娓呯┖涔嬪墠缂撳瓨,鍥犱负閬囧埌涓�涓棶棰樼寷鎷夌殑鏃跺�欐姤閿�;
+// getRecoverMessageList(false);
}
});
messageRecoverAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() {
@@ -88,7 +95,30 @@
startActivity(intent);
}
});
+
+ viewBinding.messageRecoverRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+// super.onScrolled(recyclerView, dx, dy);
+
+ LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
+ if (layoutManager == null) {
+ return;
+ }
+ int visibleItemCount = layoutManager.getChildCount();
+ int totalItemCount = layoutManager.getItemCount();
+ int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
+ if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
+ if (!isLoadingMore) {
+ // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+ HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+ loadNextPageRecoverMessageList(++currentPage, false);
+ }
+ }
+ }
+ });
}
+
private void initView() {
viewBinding.messageRecoverRecyclerview.setLayoutManager(new LinearLayoutManager(_mActivity));
@@ -101,14 +131,25 @@
* 鍒锋柊鍒楄〃鏁版嵁
*/
private void updateListData() {
- if (this.messageRecoverAdapter != null) {
- this.messageRecoverAdapter.setList(mList);
- this.messageRecoverAdapter.notifyDataSetChanged();
- }
- //鍒锋柊銆愬凡鎭㈠銆戜俊鎭暟閲忔�绘暟
- this.refreshRecoverCount();
- this.nullDataUpdateUi();
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ //鏇存柊缂撳瓨鏁版嵁
+ initData();
+ //鍒锋柊鍒楄〃
+ if (messageRecoverAdapter != null) {
+ messageRecoverAdapter.setList(mList);
+ messageRecoverAdapter.notifyDataSetChanged();
+ }
+
+ //鍒锋柊銆愬凡鎭㈠銆戜俊鎭暟閲忔�绘暟
+ refreshRecoverCount();
+ //鏄剧ず娌℃暟鎹甎i鏍峰紡
+ nullDataUpdateUi();
+ }
+ });
+
}
@@ -122,7 +163,7 @@
if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) {
if (eventBus.getType().equals(MessageFunctionTabSwitch.recover.toString())) {
initData();
- getRecoverMessageList(true);
+ loadNextPageRecoverMessageList(1, true);
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
}
@@ -136,54 +177,53 @@
}
}
-
/**
- * 鑾峰彇鎭㈠涓殑娑堟伅鍒楄〃
+ * 鍔犺浇涓�椤垫暟鎹�
*
- * @param isShowLoading 鏄惁鍚姩 true鍚姩
+ * @param pageNo 椤垫暟
+ * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
*/
- private void getRecoverMessageList(boolean isShowLoading) {
-
- if (mList.size() == 0) {
- if (isShowLoading) {
- showLoading();
- }
- HdlMessageLogic.getInstance().getRecoverMessageList(new CloudCallBeak<List<MessageBean>>() {
- @Override
- public void onSuccess(List<MessageBean> list) {
- HdlThreadLogic.runMainThread(new Runnable() {
- @Override
- public void run() {
- if (isShowLoading) {
- hideLoading();
- }
- if (!isShowLoading) {
- viewBinding.messageRecoverSrl.setRefreshing(false);
- }
-
- if (list != null && list.size() != 0) {
- mList.addAll(list);
- updateListData();
- } else {
- nullDataUpdateUi();
- }
- }
- });
- }
-
- @Override
- public void onFailure(HDLException e) {
- if (isShowLoading) {
- hideLoading();
- }
- if (!isShowLoading) {
- viewBinding.messageRecoverSrl.setRefreshing(false);
- }
- }
- });
+ private void loadNextPageRecoverMessageList(int pageNo, boolean isShowLoading) {
+ if (pageNo == 1 && mList.size() > 0) {
+ //缂撳瓨鏁版嵁娌℃湁鎵嶅彲浠ヨ鍙栫涓�椤�
+ return;
}
+ if (currentPage > total) {
+ //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
+ return;
+ }
+ isLoadingMore = true;//鏍囪璇诲彇鐘舵��
+ if (isShowLoading) {
+ showLoading();
+ }
+ HdlMessageLogic.getInstance().getPageNoMessageList(pageNo, MessageStateType.processed, new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
+ @Override
+ public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
+ if (messageListClass != null) {
+ total = (int) messageListClass.getTotalPage();
+ currentPage = (int) messageListClass.getPageNo();
+ updateListData();
+ }
+ isLoadingMore = false;
+ if (isShowLoading) {
+ hideLoading();
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ if (currentPage > 1) {
+ --currentPage;
+ }
+ isLoadingMore = false;
+ if (isShowLoading) {
+ hideLoading();
+ }
+ }
+ });
}
+
/**
* 鍒锋柊銆愬凡鎭㈠銆戜俊鎭暟閲忔�绘暟
*/
diff --git a/app/src/main/res/layout/item_message.xml b/app/src/main/res/layout/item_message.xml
index c090068..da1f0a5 100644
--- a/app/src/main/res/layout/item_message.xml
+++ b/app/src/main/res/layout/item_message.xml
@@ -24,12 +24,17 @@
<TextView
android:id="@+id/item_content_tv"
- android:layout_width="wrap_content"
+ android:layout_width="0dp"
android:layout_height="@dimen/dp_23"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
+ android:layout_marginEnd="@dimen/dp_5"
+ android:gravity="center_vertical"
android:textColor="@color/text_90000000"
android:textSize="@dimen/text_16"
+ android:ellipsize="end"
+ android:singleLine="true"
+ app:layout_constraintEnd_toStartOf="@+id/item_estate_tv"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -62,7 +67,7 @@
android:gravity="center"
android:paddingStart="@dimen/dp_12"
android:paddingEnd="@dimen/dp_12"
- android:text="@string/my_power_station_connecting"
+ android:text="@string/message_alarm"
android:textColor="@color/text_FFFFFFFF"
android:textSize="@dimen/text_12"
app:layout_constraintEnd_toEndOf="parent"
--
Gitblit v1.8.0