From 1c22df6f9f652b00fb64f523f1e2ee717fb4cc68 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 14 十二月 2023 18:02:58 +0800 Subject: [PATCH] 2023年12月14日18:02:49 --- app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java | 78 +++++++- app/src/main/res/layout/activity_message_info.xml | 11 + app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java | 121 +++++------- app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java | 23 ++ app/src/main/AndroidManifest.xml | 3 app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java | 81 +++++++- app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java | 80 +++++++- app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java | 6 app/src/main/res/layout/fragment_nascent_message.xml | 21 +- app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 18 +- app/src/main/res/layout/fragment_message_all.xml | 20 +- app/src/main/res/layout/fragment_recover_message.xml | 22 +- 12 files changed, 342 insertions(+), 142 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d91f4a2..c6f697c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -71,6 +71,9 @@ android:supportsRtl="true" android:theme="@style/Theme.PhotovoltaicDebug"> <activity + android:name=".ui.message.MessageInfoActivity" + android:exported="false" /> + <activity android:name=".ui.message.TestMessageActivity" android:exported="false" /> <activity diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java index 715aaa7..3c1c9b4 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -85,18 +85,18 @@ * 鍘熺敓鎺ユ敹鍒皍ni鍙戞潵鐨勬暟鎹� * * @param appId -uni灏忕▼搴忔寚瀹氱殑appId - * @param event -uni灏忕▼搴忓彂鏉ユ暟鎹� + * @param topic -uni灏忕▼搴忓彂鏉ヤ富棰�(澶х被) * @param data JSONObject com.alibaba.fastjson瑙f瀽澶勭悊 * @param callback callback.invoke(JSONObject) 鐢╟om.alibaba.fastjson */ @Override - public void onOtherUniMPEventReceive(String appId, String event, Object data, DCUniMPJSCallback callback) { + public void onOtherUniMPEventReceive(String appId, String topic, Object data, DCUniMPJSCallback callback) { try { if (!HDLUniMP.UNI_APP_ID.equals(appId)) { return; } - String type = getKeyValue("type", data); - if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(event)) { + String type = getKeyValue("type", data);//灏忕被 + if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) { //浣忓畢妯″潡 switch (type) { //鍒涘缓鐢电珯 @@ -128,7 +128,7 @@ if (callback != null) { uniCallbackData(null, callback); } - } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(event)) { + } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(topic)) { //璁惧妯″潡 switch (type) { //娣诲姞閫嗗彉鍣ㄥ埌浜戠 @@ -185,7 +185,7 @@ } - } else if (HDLUniMP.UNI_EVENT_REPLY_WIFI_MODEL.equals(event)) { + } else if (HDLUniMP.UNI_EVENT_REPLY_WIFI_MODEL.equals(topic)) { WifiUtils wifiUtils = new WifiUtils(HDLApp.getInstance()); //wifi妯″潡 switch (type) { @@ -210,7 +210,7 @@ break; } - } else if (HDLUniMP.UNI_EVENT_REPLY_OTA_MODEL.equals(event)) { + } else if (HDLUniMP.UNI_EVENT_REPLY_OTA_MODEL.equals(topic)) { //OTA鍗囩骇妯″潡 switch (type) { //鍚戜簯绔幏鍙杘id鍒楄〃 @@ -285,7 +285,7 @@ break; } - } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(event)) { + } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) { //鍏跺畠妯″潡 switch (type) { //鑾峰彇娓╁害鍗曚綅 @@ -300,7 +300,7 @@ break; } } - HdlLogLogic.print("uni===鍘熺敓鎺ユ敹uni鍙戞潵鐨勬暟鎹�===" + event + "\r\n" + data, false); + HdlLogLogic.print("uni===鍘熺敓鎺ユ敹uni鍙戞潵鐨勬暟鎹�===澶х被->" + topic + "\r\n" + data, false); } catch (Exception e) { HdlLogLogic.print("uni===鍘熺敓鎺ユ敹uni鍙戞潵鐨勬暟鎹�===" + e.getMessage(), false); } diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java index 2b43fe1..6ce4bb5 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java @@ -38,10 +38,10 @@ @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { MessageBean messageBean = this.mList.get(position); - holder.item_content_tv.setText(messageBean.getContent()); + holder.item_content_tv.setText(messageBean.getTitle()); holder.item_home_name_tv.setText(messageBean.getHomeName()); - holder.item_time_tv.setText(messageBean.getTime()); - holder.item_estate_tv.setText(messageBean.getGrade() + ""); + holder.item_time_tv.setText(messageBean.getCreateTime() + ""); + holder.item_estate_tv.setText(messageBean.getStatus() + ""); holder.item_unread_message_tv.setVisibility(View.VISIBLE); if (messageBean.isRead()) { holder.item_unread_message_tv.setVisibility(View.GONE); 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 1ceb340..b0a25d8 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 @@ -4,14 +4,18 @@ import android.view.ViewGroup; 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.databinding.FragmentMessageBinding; +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.ui.adapter.MessageAdapter; import com.hdl.photovoltaic.ui.bean.MessageBean; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; @@ -47,19 +51,29 @@ } 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.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); +// } } private void initEvent() { + + //璁剧疆涓嬫媺绠ご棰滆壊 + viewBinding.messageAllSrl.setColorSchemeResources(R.color.text_FF245EC3); + viewBinding.messageAllSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + getAllMessageList(false); + HdlLogLogic.print("AllMessageFragment涓嬫媺鍒锋柊", false); + } + }); if (messageAllAdapter != null) { messageAllAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() { @Override @@ -69,6 +83,7 @@ }); } + } private void initView() { @@ -77,8 +92,12 @@ viewBinding.messageAllRecyclerview.setAdapter(messageAllAdapter); } + /** + * 鍒锋柊鍒楄〃鏁版嵁 + */ private void updateListData() { if (this.messageAllAdapter != null) { + this.messageAllAdapter.setList(mList); this.messageAllAdapter.notifyDataSetChanged(); } } @@ -89,11 +108,50 @@ //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢 if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) { if (eventBus.getType().equals(HdlCommonLogic.MessageFunctionTabSwitch.all.toString())) { - updateListData(); + getAllMessageList(true); HdlLogLogic.print("姝e湪鐐瑰嚮銆愬叏閮ㄣ��"); } } } + /** + * 鑾峰彇鍏ㄩ儴涓殑娑堟伅鍒楄〃 + * + * @param isShowLoading 鏄惁鍚姩 true鍚姩 + */ + private void getAllMessageList(boolean isShowLoading) { + if (mList.size() == 0) { + if (isShowLoading) { + showLoading(); + } + HdlMessageLogic.getInstance().getMessageList(HdlMessageLogic.MessageStatus.processed, new CloudCallBeak<List<MessageBean>>() { + @Override + public void onSuccess(List<MessageBean> list) { + 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); + } + } + }); + } + } + } diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java index 40e921a..9585d2a 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java @@ -1,12 +1,9 @@ package com.hdl.photovoltaic.ui.message; -import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.view.View; -import androidx.annotation.RequiresApi; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -34,11 +31,8 @@ private static final String CURRENT_FRAGMENT = "state_fragment_show"; private FragmentManager mFragmentManager; private Fragment currentFragment = new Fragment(); - private List<Fragment> fragments = new ArrayList<>(); + private final List<Fragment> fragmentList = new ArrayList<>(); private int currentIndex = 0; - private AllMessageFragment mAllMessageFragment; - private NascentMessageFragment mNascentMessageFragment; - private RecoverMessageFragment mRecoverMessageFragment; @Override public Object getContentView() { @@ -49,6 +43,7 @@ @Override public void onBindView(Bundle savedInstanceState) { + //鍒濆鍖栫鐗� initFragment(savedInstanceState); //鍒濆鍖栫晫闈� initView(); @@ -64,28 +59,20 @@ viewBinding.messageTabNascentCl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - viewBinding.messageTabAllTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.messageTabNascentTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null)); - viewBinding.messageTabRecoverTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.line1V.setVisibility(View.GONE); - viewBinding.line2V.setVisibility(View.VISIBLE); - viewBinding.line3V.setVisibility(View.GONE); - showFragment(0); - postEventBus(HdlCommonLogic.MessageFunctionTabSwitch.nascent); + currentIndex = 0; + showFragment(); + initView(); + } }); //宸叉仮澶� viewBinding.messageTabRecoverCl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - viewBinding.messageTabAllTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.messageTabNascentTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.messageTabRecoverTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null)); - viewBinding.line1V.setVisibility(View.GONE); - viewBinding.line2V.setVisibility(View.GONE); - viewBinding.line3V.setVisibility(View.VISIBLE); - showFragment(1); - postEventBus(HdlCommonLogic.MessageFunctionTabSwitch.recover); + currentIndex = 1; + showFragment(); + initView(); + } }); @@ -93,32 +80,38 @@ viewBinding.messageTabAllCl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - viewBinding.messageTabAllTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null)); - viewBinding.messageTabNascentTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.messageTabRecoverTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.line1V.setVisibility(View.VISIBLE); - viewBinding.line2V.setVisibility(View.GONE); - viewBinding.line3V.setVisibility(View.GONE); - showFragment(2); - postEventBus(HdlCommonLogic.MessageFunctionTabSwitch.all); - + currentIndex = 2; + showFragment(); + initView(); } }); } private void initView() { - viewBinding.messageTabAllTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.messageTabNascentTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null)); - viewBinding.messageTabRecoverTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); - viewBinding.line1V.setVisibility(View.GONE); - viewBinding.line2V.setVisibility(View.VISIBLE); - viewBinding.line3V.setVisibility(View.GONE); if (this.currentIndex == 0) { + viewBinding.messageTabAllTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); + viewBinding.messageTabNascentTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null)); + viewBinding.messageTabRecoverTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); + viewBinding.line1V.setVisibility(View.GONE); + viewBinding.line2V.setVisibility(View.VISIBLE); + viewBinding.line3V.setVisibility(View.GONE); postEventBus(HdlCommonLogic.MessageFunctionTabSwitch.nascent); } else if (this.currentIndex == 1) { + viewBinding.messageTabAllTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); + viewBinding.messageTabNascentTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); + viewBinding.messageTabRecoverTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null)); + viewBinding.line1V.setVisibility(View.GONE); + viewBinding.line2V.setVisibility(View.GONE); + viewBinding.line3V.setVisibility(View.VISIBLE); postEventBus(HdlCommonLogic.MessageFunctionTabSwitch.recover); } else if (this.currentIndex == 2) { + viewBinding.messageTabAllTitleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null)); + viewBinding.messageTabNascentTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); + viewBinding.messageTabRecoverTitleTv.setTextColor(getResources().getColor(R.color.text80_FFFFFF, null)); + viewBinding.line1V.setVisibility(View.VISIBLE); + viewBinding.line2V.setVisibility(View.GONE); + viewBinding.line3V.setVisibility(View.GONE); postEventBus(HdlCommonLogic.MessageFunctionTabSwitch.all); } } @@ -146,41 +139,30 @@ */ private void initFragment(Bundle savedInstanceState) { mFragmentManager = _mActivity.getSupportFragmentManager(); - //纰庣墖鍐呴渶瑕佷娇鐢ㄦ潈闄愬拰forresult - - mNascentMessageFragment = new NascentMessageFragment(); - mRecoverMessageFragment = new RecoverMessageFragment(); - mAllMessageFragment = new AllMessageFragment(); + //纰庣墖鍒濆鍖� + NascentMessageFragment mNascentMessageFragment = new NascentMessageFragment(); + RecoverMessageFragment mRecoverMessageFragment = new RecoverMessageFragment(); + AllMessageFragment mAllMessageFragment = new AllMessageFragment(); if (savedInstanceState != null) { //鈥滃唴瀛橀噸鍚�濇椂璋冪敤 鑾峰彇鈥滃唴瀛橀噸鍚�濇椂淇濆瓨鐨勭储寮曚笅鏍� currentIndex = savedInstanceState.getInt(CURRENT_FRAGMENT, 0); - if (fragments.size() != 0) { - fragments.clear(); + if (fragmentList.size() != 0) { + fragmentList.clear(); } - fragments.add(mFragmentManager.findFragmentByTag(0 + "")); - fragments.add(mFragmentManager.findFragmentByTag(1 + "")); - fragments.add(mFragmentManager.findFragmentByTag(2 + "")); + fragmentList.add(mFragmentManager.findFragmentByTag(0 + "")); + fragmentList.add(mFragmentManager.findFragmentByTag(1 + "")); + fragmentList.add(mFragmentManager.findFragmentByTag(2 + "")); restoreFragment();//鎭㈠fragment椤甸潰 } else { //姝e父鍚姩鏃惰皟鐢� - fragments.add(mAllMessageFragment); - fragments.add(mNascentMessageFragment); - fragments.add(mRecoverMessageFragment); + fragmentList.add(mNascentMessageFragment); + fragmentList.add(mRecoverMessageFragment); + fragmentList.add(mAllMessageFragment); showFragment(); } - } - - /** - * 鍒囨崲Fragment - * - * @param index 绱㈠紩 - */ - private void showFragment(int index) { - currentIndex = index; - showFragment(); } /** @@ -190,34 +172,33 @@ private void showFragment() { FragmentTransaction ft = mFragmentManager.beginTransaction(); //濡傛灉涔嬪墠娌℃湁娣诲姞杩� - if (!fragments.get(currentIndex).isAdded()) { + if (!fragmentList.get(currentIndex).isAdded()) { //绗笁涓弬鏁颁负娣诲姞褰撳墠鐨刦ragment鏃剁粦瀹氫竴涓猼ag ft.hide(currentFragment) - .add(R.id.message_fcv, fragments.get(currentIndex), "" + currentIndex); + .add(R.id.message_fcv, fragmentList.get(currentIndex), currentIndex + ""); } else { ft.hide(currentFragment) - .show(fragments.get(currentIndex)); + .show(fragmentList.get(currentIndex)); } - currentFragment = fragments.get(currentIndex); + currentFragment = fragmentList.get(currentIndex); ft.commit(); } /** * 鎭㈠fragment */ - private void restoreFragment() { FragmentTransaction ft = mFragmentManager.beginTransaction(); - for (int i = 0; i < fragments.size(); i++) { + for (int i = 0; i < fragmentList.size(); i++) { if (i == currentIndex) { - ft.show(fragments.get(i)); + ft.show(fragmentList.get(i)); } else { - ft.hide(fragments.get(i)); + ft.hide(fragmentList.get(i)); } } ft.commit(); //鎶婂綋鍓嶆樉绀虹殑fragment璁板綍涓嬫潵 - currentFragment = fragments.get(currentIndex); + currentFragment = fragmentList.get(currentIndex); } diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java new file mode 100644 index 0000000..8f4c0b9 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java @@ -0,0 +1,23 @@ +package com.hdl.photovoltaic.ui.message; + + +import android.os.Bundle; + +import com.hdl.photovoltaic.base.CustomBaseActivity; +import com.hdl.photovoltaic.databinding.ActivityMessageInfoBinding; + +public class MessageInfoActivity extends CustomBaseActivity { + + ActivityMessageInfoBinding viewBinding; + + @Override + public Object getContentView() { + viewBinding = ActivityMessageInfoBinding.inflate(getLayoutInflater()); + return viewBinding.getRoot(); + } + + @Override + public void onBindView(Bundle savedInstanceState) { + + } +} \ No newline at end of file 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 725e233..0de0186 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,16 @@ 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.FragmentNascentMessageBinding; +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.ui.adapter.MessageAdapter; import com.hdl.photovoltaic.ui.bean.MessageBean; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; @@ -25,7 +29,7 @@ private MessageAdapter messageNascentAdapter; - private List<MessageBean> mList; + private List<MessageBean> mList = new ArrayList<>(); @Override public Object getContentView() { @@ -44,18 +48,27 @@ } private void initData() { - mList = new ArrayList<>(); - for (int i = 0; i < 3; i++) { - MessageBean messageBean = new MessageBean(); - messageBean.setContent("鏉ヤ簡涓�鏉″憡璀︿俊鎭�" + i); - messageBean.setHomeName(i + ""); - messageBean.setTime("2023-12-06-15"); - messageBean.setRead(false); - mList.add(messageBean); - } +// mList = new ArrayList<>(); +// for (int i = 0; i < 3; i++) { +// MessageBean messageBean = new MessageBean(); +// messageBean.setTitle("鏉ヤ簡涓�鏉″憡璀︿俊鎭�" + i); +// messageBean.setHomeName(i + ""); +// messageBean.setCreateTime((long) 1234567777); +// messageBean.setRead(false); +// mList.add(messageBean); +// } } private void initEvent() { + //璁剧疆涓嬫媺绠ご棰滆壊 + viewBinding.messageNascentSrl.setColorSchemeResources(R.color.text_FF245EC3); + viewBinding.messageNascentSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰娑堟伅鍒楄〃 + getNascentMessageList(false); + } + }); messageNascentAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() { @Override public void onClick(int position, MessageBean item) { @@ -70,8 +83,12 @@ viewBinding.messageNascentRecyclerview.setAdapter(messageNascentAdapter); } + /** + * 鍒锋柊鍒楄〃鏁版嵁 + */ private void updateListData() { if (this.messageNascentAdapter != null) { + this.messageNascentAdapter.setList(mList); this.messageNascentAdapter.notifyDataSetChanged(); } } @@ -82,9 +99,47 @@ //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢 if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) { if (eventBus.getType().equals(HdlCommonLogic.MessageFunctionTabSwitch.nascent.toString())) { - HdlLogLogic.print("姝e湪鐐瑰嚮銆愯繘琛屼腑銆�"); - updateListData(); + getNascentMessageList(true); } } } + + /** + * 鑾峰彇鍙戠敓涓殑娑堟伅鍒楄〃 + * + * @param isShowLoading 鏄惁鍚姩 true鍚姩 + */ + private void getNascentMessageList(boolean isShowLoading) { + if (mList.size() == 0) { + if (isShowLoading) { + showLoading(); + } + HdlMessageLogic.getInstance().getMessageList(HdlMessageLogic.MessageStatus.untreated, new CloudCallBeak<List<MessageBean>>() { + @Override + public void onSuccess(List<MessageBean> list) { + 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); + } + } + }); + } + } } 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 0df63af..20090df 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 @@ -3,12 +3,17 @@ 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.FragmentRecoverMessageBinding; +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.ui.adapter.MessageAdapter; import com.hdl.photovoltaic.ui.bean.MessageBean; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; @@ -26,6 +31,7 @@ private MessageAdapter messageRecoverAdapter; private List<MessageBean> mList; + @Override public Object getContentView() { viewBinding = FragmentRecoverMessageBinding.inflate(getLayoutInflater()); @@ -43,18 +49,27 @@ } private void initData() { - mList = new ArrayList<>(); - for (int i = 0; i < 2; i++) { - MessageBean messageBean = new MessageBean(); - messageBean.setContent("鏉ヤ簡涓�鏉″憡璀︿俊鎭�" + i); - messageBean.setHomeName(i + ""); - messageBean.setTime("2023-12-06-15"); - messageBean.setRead(false); - mList.add(messageBean); - } +// mList = new ArrayList<>(); +// for (int i = 0; i < 2; i++) { +// MessageBean messageBean = new MessageBean(); +//// messageBean.setContent("鏉ヤ簡涓�鏉″憡璀︿俊鎭�" + i); +// messageBean.setHomeName(i + ""); +//// messageBean.setTime("2023-12-06-15"); +// messageBean.setRead(false); +// mList.add(messageBean); +// } } private void initEvent() { + //璁剧疆涓嬫媺绠ご棰滆壊 + viewBinding.messageRecoverSrl.setColorSchemeResources(R.color.text_FF245EC3); + viewBinding.messageRecoverSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + getRecoverMessageList(false); + HdlLogLogic.print("RecoverMessageFragment涓嬫媺鍒锋柊", false); + } + }); messageRecoverAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() { @Override public void onClick(int position, MessageBean item) { @@ -69,11 +84,17 @@ viewBinding.messageRecoverRecyclerview.setAdapter(messageRecoverAdapter); } + + /** + * 鍒锋柊鍒楄〃鏁版嵁 + */ private void updateListData() { if (this.messageRecoverAdapter != null) { + this.messageRecoverAdapter.setList(mList); this.messageRecoverAdapter.notifyDataSetChanged(); } } + @Override public void onEventMessage(BaseEventBus eventBus) { super.onEventMessage(eventBus); @@ -81,7 +102,48 @@ if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) { if (eventBus.getType().equals(HdlCommonLogic.MessageFunctionTabSwitch.recover.toString())) { HdlLogLogic.print("姝e湪鐐瑰嚮銆愬凡鎭㈠銆�"); + getRecoverMessageList(true); } } } + + + /** + * 鑾峰彇鎭㈠涓殑娑堟伅鍒楄〃 + * + * @param isShowLoading 鏄惁鍚姩 true鍚姩 + */ + private void getRecoverMessageList(boolean isShowLoading) { + if (mList.size() == 0) { + if (isShowLoading) { + showLoading(); + } + HdlMessageLogic.getInstance().getMessageList(HdlMessageLogic.MessageStatus.processed, new CloudCallBeak<List<MessageBean>>() { + @Override + public void onSuccess(List<MessageBean> list) { + if (isShowLoading) { + hideLoading(); + } + if (!isShowLoading) { + viewBinding.messageRecoverSrl.setRefreshing(false); + } + + if (list != null && list.size() != 0) { + mList.addAll(list); + updateListData(); + } + } + + @Override + public void onFailure(HDLException e) { + if (isShowLoading) { + hideLoading(); + } + if (!isShowLoading) { + viewBinding.messageRecoverSrl.setRefreshing(false); + } + } + }); + } + } } diff --git a/app/src/main/res/layout/activity_message_info.xml b/app/src/main/res/layout/activity_message_info.xml new file mode 100644 index 0000000..1f943ac --- /dev/null +++ b/app/src/main/res/layout/activity_message_info.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/text_FFFFFFFF" + tools:context=".ui.message.MessageInfoActivity"> + + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_message_all.xml b/app/src/main/res/layout/fragment_message_all.xml index fd146fb..a3bc437 100644 --- a/app/src/main/res/layout/fragment_message_all.xml +++ b/app/src/main/res/layout/fragment_message_all.xml @@ -3,19 +3,19 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/all_parent" android:layout_width="match_parent" - android:background="#EA0C0C" android:layout_height="match_parent"> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/message_all_recyclerview" + <androidx.swiperefreshlayout.widget.SwipeRefreshLayout + android:id="@+id/message_all_srl" android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/text_FFB300" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + android:layout_height="match_parent"> - + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/message_all_recyclerview" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:clipToPadding="false" + android:paddingBottom="@dimen/dp_16" /> + </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_nascent_message.xml b/app/src/main/res/layout/fragment_nascent_message.xml index b18b7ca..bed934a 100644 --- a/app/src/main/res/layout/fragment_nascent_message.xml +++ b/app/src/main/res/layout/fragment_nascent_message.xml @@ -5,14 +5,17 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/message_nascent_recyclerview" - android:layout_width="0dp" - android:layout_height="0dp" - android:background="@color/text_FFB300" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + <androidx.swiperefreshlayout.widget.SwipeRefreshLayout + android:id="@+id/message_nascent_srl" + android:layout_width="match_parent" + android:layout_height="match_parent" + > + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/message_nascent_recyclerview" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:clipToPadding="false" + android:paddingBottom="@dimen/dp_16" /> + </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recover_message.xml b/app/src/main/res/layout/fragment_recover_message.xml index 7d5844b..cd7964c 100644 --- a/app/src/main/res/layout/fragment_recover_message.xml +++ b/app/src/main/res/layout/fragment_recover_message.xml @@ -5,14 +5,18 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/message_recover_recyclerview" - android:layout_width="0dp" - android:layout_height="0dp" - android:background="@color/text_FFB300" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + <androidx.swiperefreshlayout.widget.SwipeRefreshLayout + android:id="@+id/message_recover_srl" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/message_recover_recyclerview" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:clipToPadding="false" + android:paddingBottom="@dimen/dp_16" /> + </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> + </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- Gitblit v1.8.0