From be5c9f324ac1d31f4f262d288c5f72a7a0c10c47 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 19 一月 2024 10:08:23 +0800
Subject: [PATCH] 2024年01月19日10:08:08
---
app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java | 125 +++++++++++++++++++++++++++++++++++++----
1 files changed, 112 insertions(+), 13 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 3388a68..10c2b79 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
@@ -4,12 +4,18 @@
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
+import android.text.TextUtils;
+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;
@@ -18,11 +24,14 @@
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;
@@ -94,17 +103,29 @@
}
});
+
viewBinding.messageNascentRecyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
-// int totalItemCount = layoutManager.getItemCount();
-// int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition();
-//
-// if (!isLoadingMore && totalItemCount <= (lastVisibleItemPosition + visibleThreshold)) {
+ 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();
-// }
+ }
}
});
}
@@ -124,15 +145,30 @@
this.messageNascentAdapter.setList(mList);
this.messageNascentAdapter.notifyDataSetChanged();
}
+ //鍒锋柊銆愬彂鐢熶腑銆戜俊鎭暟閲忔�绘暟
+ this.refreshNascentCount();
+ this.nullDataUpdateUi();
- if (mList.size() > 0) {
- BaseEventBus baseEventBus = new BaseEventBus();
- baseEventBus.setTopic(ConstantManage.message_count);
- baseEventBus.setType(MessageStateType.untreated);
- baseEventBus.setData(mList.size());
- EventBus.getDefault().post(baseEventBus);
- }
+ }
+
+ /**
+ * 鍒锋柊銆愬彂鐢熶腑銆戜俊鎭暟閲忔�绘暟
+ */
+ 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)
@@ -146,8 +182,10 @@
if (eventBus.getType().equals(MessageFunctionTabSwitch.nascent.toString())) {
initData();
getNascentMessageList(true);
+ getUnreadCount();
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
+
}
} else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
@@ -155,6 +193,7 @@
//娑堟伅璇︽儏鍥炶皟
initData();
updateListData();
+ getUnreadCount();
}
}
}
@@ -162,7 +201,7 @@
/**
* 鑾峰彇鍙戠敓涓殑娑堟伅鍒楄〃
*
- * @param isShowLoading 鏄惁鍚姩 true鍚姩
+ * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
*/
private void getNascentMessageList(boolean isShowLoading) {
if (mList.size() == 0) {
@@ -222,4 +261,64 @@
// List<MessageBean> newData = HdlMessageLogic.getInstance().getAllMessageList();
// return newData;
// }
+
+ /**
+ * 璇诲彇娑堟伅銆愭湭璇绘暟閲忋��
+ */
+ 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);
+ }
+ }
+ });
+ }
+
+
+ /**
+ * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
+ */
+ 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