From c7c07eaa32ca7b137b1ac028d17beee0ebcf9a0b Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 26 三月 2024 15:22:15 +0800 Subject: [PATCH] 2024年03月26日15:22:09 --- app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 97 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java index 6cc5e71..8597c39 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java @@ -1,17 +1,30 @@ package com.hdl.photovoltaic.ui.message; +import android.content.Intent; import android.os.Bundle; import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; +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.FragmentMessageAllBinding; +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.MessageBean; 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.List; @@ -25,7 +38,7 @@ private MessageAdapter messageAllAdapter; - private final List<MessageBean> mList=new ArrayList<>(); + private final List<MessageBean> mList = new ArrayList<>(); @Override public Object getContentView() { @@ -45,26 +58,38 @@ private void initData() { mList.clear(); - 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.addAll(HdlMessageLogic.getInstance().getAllMessageList()); } private void initEvent() { - if(messageAllAdapter!=null){ + + //璁剧疆涓嬫媺绠ご棰滆壊 + viewBinding.messageAllSrl.setColorSchemeResources(R.color.text_FF245EC3); + viewBinding.messageAllSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃 + updateListData();//娓呯┖涔嬪墠缂撳瓨,鍥犱负閬囧埌涓�涓棶棰樼寷鎷夌殑鏃跺�欐姤閿�; + getAllMessageList(false); + HdlLogLogic.print("AllMessageFragment涓嬫媺鍒锋柊", false); + } + }); + if (messageAllAdapter != null) { messageAllAdapter.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); } }); } + } @@ -74,26 +99,83 @@ viewBinding.messageAllRecyclerview.setAdapter(messageAllAdapter); } + /** + * 鍒锋柊鍒楄〃鏁版嵁 + */ private void updateListData() { if (this.messageAllAdapter != null) { + this.messageAllAdapter.setList(mList); this.messageAllAdapter.notifyDataSetChanged(); } } - @Override + @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(HdlCommonLogic.MessageFunctionTabSwitch.all.toString())) { - updateListData(); - HdlLogLogic.print("姝e湪鐐瑰嚮銆愬叏閮ㄣ��"); + if (eventBus.getType().equals(MessageFunctionTabSwitch.all.toString())) { + initData(); + getAllMessageList(true); + // 鍙栨秷绮樻�т簨浠� + EventBus.getDefault().removeStickyEvent(eventBus); + } + } else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) { + if (eventBus.getType().equals(MessageStateType.all)) { + //娑堟伅璇︽儏鍥炶皟 +// initData(); +// updateListData(); } } } + /** + * 鑾峰彇鍏ㄩ儴涓殑娑堟伅鍒楄〃 + * + * @param isShowLoading 鏄惁鍚姩 true鍚姩 + */ + private void getAllMessageList(boolean isShowLoading) { + if (mList.size() == 0) { + if (isShowLoading) { + showLoading(); + } + HdlMessageLogic.getInstance().getAllMessageList(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.messageAllSrl.setRefreshing(false); + } + if (list != null && list.size() != 0) { + mList.addAll(list); + updateListData(); + } + } + }); + } + + @Override + public void onFailure(HDLException e) { + if (isShowLoading) { + hideLoading(); + } + if (!isShowLoading) { + viewBinding.messageAllSrl.setRefreshing(false); + } + } + }); + } + } } -- Gitblit v1.8.0