From f2d9afb007d65cc6c5124442f1bc35fab129d1aa Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 30 一月 2024 15:14:32 +0800
Subject: [PATCH] 2024年01月30日15:14:14
---
app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 260 insertions(+), 21 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 0144e93..7f8b76f 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,20 +1,46 @@
package com.hdl.photovoltaic.ui.message;
+import android.content.Intent;
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;
+import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.databinding.FragmentNascentMessageBinding;
+import com.hdl.photovoltaic.enums.MessageFunctionTabSwitch;
+import com.hdl.photovoltaic.enums.MessageStateType;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
+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;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -25,7 +51,13 @@
private MessageAdapter messageNascentAdapter;
- private List<MessageBean> mList;
+ private final List<MessageBean> mList = new ArrayList<>();
+ private int currentPage = 0; // 褰撳墠椤电爜
+ private int total = 0; // 鏈�鍚庨〉鐮�
+
+ private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
+
+ LinearLayoutManager layoutManager;
@Override
public Object getContentView() {
@@ -36,7 +68,7 @@
@Override
public void onBindView(Bundle savedInstanceState) {
//鍒濆鍖栨暟鎹�
- initData();
+// initData();
//鍒濆鍖栫晫闈�
initView();
//鍒濆鍖栫洃鍚櫒
@@ -44,46 +76,253 @@
}
private void initData() {
- mList = new ArrayList<>();
- for (int i = 0; i < 5; i++) {
- MessageBean messageBean = new MessageBean();
- messageBean.setContent("鏉ヤ簡涓�鏉″憡璀︿俊鎭�" + i);
- messageBean.setHomeName(i + "");
- messageBean.setTime("2023-12-06-15");
- messageBean.setRead(false);
- mList.add(messageBean);
- }
+ mList.clear();
+ mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
}
private void initEvent() {
+ //璁剧疆涓嬫媺绠ご棰滆壊
+ viewBinding.messageNascentSrl.setColorSchemeResources(R.color.text_FF245EC3);
+ viewBinding.messageNascentSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+ @Override
+ public void onRefresh() {
+ viewBinding.messageNascentSrl.setRefreshing(false);
+// mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃
+// updateListData();//娓呯┖涔嬪墠缂撳瓨,鍥犱负閬囧埌涓�涓棶棰樼寷鎷夌殑鏃跺�欐姤閿�;
+// getNascentMessageList(false);
+ }
+ });
messageNascentAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() {
@Override
public void onClick(int position, MessageBean item) {
+ if (position < 0 || position > mList.size()) {
+ return;
+ }
+ Intent intent = new Intent();
+ intent.putExtra("msgId", item.getMsgId().toString());
+ intent.setClass(_mActivity, MessageInfoActivity.class);
+ startActivity(intent);
+ }
+ });
+
+ viewBinding.messageNascentRecyclerview.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("--->婊戝姩鍒颁簡搴曢儴");
+ loadNextPageNascentMessageList(++currentPage, false);
+ }
+ }
}
});
}
private void initView() {
- viewBinding.messageNascentRecyclerview.setLayoutManager(new LinearLayoutManager(_mActivity));
+ layoutManager = new LinearLayoutManager(_mActivity);
+ viewBinding.messageNascentRecyclerview.setLayoutManager(layoutManager);
messageNascentAdapter = new MessageAdapter(this.mList, _mActivity);
viewBinding.messageNascentRecyclerview.setAdapter(messageNascentAdapter);
}
+ /**
+ * 鍒锋柊鍒楄〃鏁版嵁
+ */
private void updateListData() {
- if (this.messageNascentAdapter != null) {
- this.messageNascentAdapter.notifyDataSetChanged();
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ //鏇存柊缂撳瓨鏁版嵁
+ initData();
+ //鍒锋柊鍒楄〃
+ if (messageNascentAdapter != null) {
+ messageNascentAdapter.setList(mList);
+ messageNascentAdapter.notifyDataSetChanged();
+ }
+ //鏄剧ず鍙戠敓涓秷鎭�绘暟閲�
+ refreshNascentCount();
+ //鏄剧ず娌℃暟鎹甎i鏍峰紡
+ nullDataUpdateUi();
+ //鏄剧ず鏈淇℃伅鎬绘暟閲�
+ getUnreadCount();
+ }
+ });
+ }
+
+ /**
+ * 鍒锋柊銆愬彂鐢熶腑銆戜俊鎭暟閲忔�绘暟
+ */
+ private void refreshNascentCount() {
+ 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() + ")";
+ textView.setText(s);
+ }
+ }
+ }
+ });
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
+ public void onEventMessage(BaseEventBus eventBus) {
+ super.onEventMessage(eventBus);
+ if (eventBus == null) {
+ return;
+ }
+ //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
+ if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) {
+ if (eventBus.getType().equals(MessageFunctionTabSwitch.nascent.toString())) {
+ initData();
+ loadNextPageNascentMessageList(1, true);
+// getUnreadCount();
+ // 鍙栨秷绮樻�т簨浠�
+ EventBus.getDefault().removeStickyEvent(eventBus);
+
+ }
+
+ } else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
+ if (eventBus.getType().equals(MessageStateType.untreated)) {
+ //娑堟伅璇︽儏鍥炶皟
+ initData();
+ updateListData();
+// getUnreadCount();
+ }
}
}
- @Override
- public void onEventMessage(BaseEventBus eventBus) {
- super.onEventMessage(eventBus);
- //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
- if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) {
- if (eventBus.getType().equals(HdlCommonLogic.MessageFunctionTabSwitch.nascent.toString())) {
- HdlLogLogic.print("姝e湪鐐瑰嚮銆愯繘琛屼腑銆�");
+ /**
+ * 鍔犺浇涓�椤垫暟鎹�
+ *
+ * @param pageNo 椤垫暟
+ * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
+ */
+ 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();
+ }
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ if (currentPage > 1) {
+ --currentPage;
+ }
+ isLoadingMore = false;
+ if (isShowLoading) {
+ hideLoading();
+ }
+ }
+ });
+ }
+
+ /**
+ * 璇诲彇娑堟伅銆愭湭璇绘暟閲忋��
+ */
+ private void getUnreadCount() {
+ 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);
+// }
+// }
+// });
+ }
+
+
+ /**
+ * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
+ */
+ 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);
}
}
--
Gitblit v1.8.0