From 636c4bb04e4fcd723766b82732990cdb4ae4ea2e Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 22 二月 2024 15:48:23 +0800
Subject: [PATCH] 删除掉本地库
---
app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java | 246 +++++++++++++++++++++++++------------------------
1 files changed, 126 insertions(+), 120 deletions(-)
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 b119560..3279ee0 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
@@ -1,9 +1,9 @@
package com.hdl.photovoltaic.ui.message;
+import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
-import android.os.Handler;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
@@ -28,9 +28,7 @@
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.adapter.MessageAdapter;
-import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.ui.bean.MessageBean;
-import com.hdl.photovoltaic.utils.GlideUtils;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import org.greenrobot.eventbus.EventBus;
@@ -49,10 +47,10 @@
private MessageAdapter messageNascentAdapter;
private final List<MessageBean> mList = new ArrayList<>();
+ private int currentPage = 0; // 褰撳墠椤电爜
+ private int currentTotal = 0; // 鎬婚〉鐮�
- // 娣诲姞涓婃媺鍔犺浇鏇村鐨勯�昏緫
- private int visibleThreshold = 5; // 褰撳墠鏄剧ず鐨勬渶鍚庝竴椤逛笌鎬诲叡鏈夊灏戞潯鏁版嵁涔嬮棿鐨勫樊鍊�
- private int currentPage = 1; // 褰撳墠椤电爜
+
private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
LinearLayoutManager layoutManager;
@@ -65,18 +63,14 @@
@Override
public void onBindView(Bundle savedInstanceState) {
- //鍒濆鍖栨暟鎹�
-// initData();
//鍒濆鍖栫晫闈�
initView();
//鍒濆鍖栫洃鍚櫒
initEvent();
+ //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�)
+ loadNextPageNascentMessageList(1, true);
}
- private void initData() {
- mList.clear();
- mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
- }
private void initEvent() {
//璁剧疆涓嬫媺绠ご棰滆壊
@@ -84,9 +78,10 @@
viewBinding.messageNascentSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
- mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃
- updateListData();//娓呯┖涔嬪墠缂撳瓨,鍥犱负閬囧埌涓�涓棶棰樼寷鎷夌殑鏃跺�欐姤閿�;
- getNascentMessageList(false);
+ viewBinding.messageNascentSrl.setRefreshing(false);
+ mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰绗竴椤垫秷鎭垪琛�
+ HdlMessageLogic.getInstance().clearListMessage();//琛ㄧず寮哄埗娓呯┖鎵�鏈夌紦瀛樹俊鎭�
+ loadNextPageNascentMessageList(1, true);
}
});
messageNascentAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() {
@@ -102,17 +97,26 @@
}
});
+
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);
-// 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);
+ }
+ }
}
});
}
@@ -128,30 +132,63 @@
* 鍒锋柊鍒楄〃鏁版嵁
*/
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() {
+ //鏇存柊鏈湴缂撳瓨鏁版嵁
+ updatelocalityCacheData();
+ //鍒锋柊鍒楄〃
+ if (messageNascentAdapter != null) {
+ messageNascentAdapter.setList(mList);
+ messageNascentAdapter.notifyDataSetChanged();
+ }
+ //鏄剧ず鏈淇℃伅鎬绘暟閲�
+ getUnreadCount();
+ //鏄剧ず娌℃暟鎹甎i鏍峰紡
+ nullDataUpdateUi();
-
+ }
+ });
}
/**
* 鍒锋柊銆愬彂鐢熶腑銆戜俊鎭暟閲忔�绘暟
*/
- private void refreshNascentCount() {
+ private void refreshNascentCount(String totalCount) {
HdlThreadLogic.runMainThread(new Runnable() {
@Override
public void run() {
TextView textView = _mActivity.findViewById(R.id.message_tab_nascent_title_tv);
if (textView != null) {
textView.setText(getText(R.string.message_nascent));
- if (mList.size() > 0) {
- String s = getText(R.string.message_nascent) + "(" + mList.size() + ")";
+ if (!TextUtils.isEmpty(totalCount) && !totalCount.equals("0")) {
+ String s = getText(R.string.message_nascent) + "(" + totalCount + ")";
textView.setText(s);
+ }
+ }
+ }
+ });
+ }
+
+ /**
+ * 鍒锋柊瑙掓爣銆愭湭璇汇�戜俊鎭暟閲忔�绘暟
+ */
+ private void refreshUnreadNascentCount(String unreadCount) {
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @SuppressLint("SetTextI18n")
+ @Override
+ public void run() {
+ 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 {
+ textView.setVisibility(View.VISIBLE);
+ if (unreadCount.length() > 2) {
+ textView.setText("99+");
+ } else {
+ textView.setText(unreadCount);
+ }
}
}
}
@@ -167,9 +204,6 @@
//鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) {
if (eventBus.getType().equals(MessageFunctionTabSwitch.nascent.toString())) {
- initData();
- getNascentMessageList(true);
- getUnreadCount();
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
@@ -178,76 +212,63 @@
} else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
if (eventBus.getType().equals(MessageStateType.untreated)) {
//娑堟伅璇︽儏鍥炶皟
- initData();
+ updatelocalityCacheData();
updateListData();
- getUnreadCount();
}
}
}
/**
- * 鑾峰彇鍙戠敓涓殑娑堟伅鍒楄〃
- *
- * @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();
- }
- }
- });
-
- }
-
- @Override
- public void onFailure(HDLException e) {
- if (isShowLoading) {
- hideLoading();
- }
- if (!isShowLoading) {
- viewBinding.messageNascentSrl.setRefreshing(false);
- }
- }
- });
- }
+ private void updatelocalityCacheData() {
+ mList.clear();
+ mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
}
-// 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;
-// }
+ /**
+ * 鍔犺浇涓�椤垫暟鎹�
+ *
+ * @param pageNo 椤垫暟
+ * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
+ */
+ private void loadNextPageNascentMessageList(int pageNo, boolean isShowLoading) {
+ //绗竴椤佃鍙栨暟鎹己鍒惰
+ if (pageNo > 1 && currentPage > currentTotal) {
+ --currentPage;
+ //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
+ 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) {
+ currentTotal = (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();
+ }
+ }
+ });
+ }
/**
* 璇诲彇娑堟伅銆愭湭璇绘暟閲忋��
@@ -261,27 +282,15 @@
@Override
public void run() {
JSONObject jsonObject = JSON.parseObject(data);
-// if (jsonObject.containsKey("untreatedCount")) {
-// //鏈鐞嗘暟閲�
-// jsonObject.getString("untreatedCount");
-// }
- String unreadCount = "0";
+ if (jsonObject.containsKey("untreatedCount")) {
+ //鏈鐞嗘暟閲�
+ String untreatedCount = jsonObject.getString("untreatedCount");
+ refreshNascentCount(untreatedCount);
+ }
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);
- }
+ String unreadCount = jsonObject.getString("unreadCount");
+ refreshUnreadNascentCount(unreadCount);
}
}
});
@@ -303,9 +312,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);
}
}
--
Gitblit v1.8.0