From d0dc2a8ce665ddcc5436270550602a1b672d248f Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期六, 11 五月 2024 11:03:35 +0800 Subject: [PATCH] 2024年05月11日11:03:33 --- app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java | 172 ++++++++++++++++++++++++++++++-------------------------- 1 files changed, 92 insertions(+), 80 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java index aecfe33..62986e6 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java @@ -1,6 +1,7 @@ package com.hdl.photovoltaic.ui.message; +import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; @@ -19,15 +20,18 @@ import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.bean.PageNumberObject; import com.hdl.photovoltaic.databinding.ActivitySearchMessgeBinding; +import com.hdl.photovoltaic.enums.MessageStateType; import com.hdl.photovoltaic.enums.ShowErrorMode; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlDeviceLogic; import com.hdl.photovoltaic.other.HdlFileLogic; import com.hdl.photovoltaic.other.HdlLogLogic; +import com.hdl.photovoltaic.other.HdlMessageLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.adapter.SearchHistoryAdapter; import com.hdl.photovoltaic.ui.adapter.SearchMessageAdapter; import com.hdl.photovoltaic.ui.bean.DeviceBean; +import com.hdl.photovoltaic.ui.bean.MessageBean; import java.util.ArrayList; import java.util.Collections; @@ -43,11 +47,10 @@ SearchMessageAdapter searchMessageAdapter;//璁惧閫傞厤鍣� SearchHistoryAdapter searchHistoryAdapter;//鍘嗗彶璁板綍閫傞厤鍣� - private List<DeviceBean> deviceList = new ArrayList<>(); - - private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜 - private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮� - private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁 + private final List<MessageBean> mList = new ArrayList<>(); + private int mCurrentPage = 0; // 褰撳墠椤电爜 + private int mCurrentTotal = 0; // 鎬婚〉鐮� + private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁 private String currSearchText; @@ -95,8 +98,6 @@ } }); viewBinding.messageSearchEt.addTextChangedListener(textWatcher); - - //鎼滅储 viewBinding.powerStationSearchTv.setOnClickListener(new View.OnClickListener() { @Override @@ -110,7 +111,7 @@ viewBinding.historyListParent.setVisibility(View.GONE); viewBinding.listParent.setVisibility(View.VISIBLE); addSearchTextToList(); - loadNextPageHouseList(true, 1, true); + loadNextPageMessageList(true, 1, viewBinding.messageSearchEt.getText().toString(), true); } }); @@ -122,7 +123,7 @@ @Override public void onRefresh() { viewBinding.listSrl.setRefreshing(false); - loadNextPageHouseList(true, 1, true); + loadNextPageMessageList(true, 1, viewBinding.messageSearchEt.getText().toString(), true); } }); //涓婃媺璇诲彇 @@ -137,10 +138,10 @@ int totalItemCount = layoutManager.getItemCount(); int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition(); if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) { - if (!isHouseLoadingMore) { + if (!isLoadingMore) { // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔 HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴"); - loadNextPageHouseList(false, ++currentHouseListPage, false); + loadNextPageMessageList(false, ++mCurrentPage, viewBinding.messageSearchEt.getText().toString(), false); } } } @@ -154,7 +155,7 @@ viewBinding.historyListParent.setVisibility(View.VISIBLE); viewBinding.listParent.setVisibility(View.GONE); searchHistoryAdapter.setList(searchHistoryTitleList); - clearData(); + clearCacheData(); } }); //鍒犻櫎 @@ -173,11 +174,14 @@ viewBinding.messageSearchEt.setText(title); } }); - //鐢电珯鐐瑰嚮鏄簨浠� + //娑堟伅鐐瑰嚮鏄簨浠� searchMessageAdapter.setOnclickListener(new SearchMessageAdapter.OnClickListener() { @Override - public void onClick(int position, DeviceBean deviceBean) { - + public void onClick(int position, MessageBean messageBean) { + Intent intent = new Intent(); + intent.putExtra("msgId", messageBean.getMsgId().toString()); + intent.setClass(_mActivity, MessageInfoActivity.class); + startActivity(intent); } }); @@ -192,7 +196,7 @@ viewBinding.historyListRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); viewBinding.historyListRcv.setAdapter(searchHistoryAdapter); searchHistoryAdapter.setList(searchHistoryTitleList); - //鍒濆鍖栫數绔欓�傞厤鍣� + //鍒濆鍖栨秷鎭�傞厤鍣� searchMessageAdapter = new SearchMessageAdapter(_mActivity); viewBinding.listRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); viewBinding.listRcv.setAdapter(searchMessageAdapter); @@ -226,6 +230,20 @@ }; /** + * 鍒锋柊鍒楄〃鏁版嵁 + */ + private void updateListData() { + HdlThreadLogic.runMainThread(new Runnable() { + @Override + public void run() { + if (searchMessageAdapter != null) { + searchMessageAdapter.setList(mList); + } + } + }); + } + + /** * 鐗╃悊鎸夐敭杩斿洖浜嬩欢 */ @Override @@ -243,90 +261,84 @@ super.onDestroy(); } + /** - * 鍒锋柊UI锛堣澶囷級 + * 鍔犺浇涓�椤垫暟鎹� * - * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑 + * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩 + * @param pageNo 椤垫暟 + * @param search_title 鎼滅储鏂囨湰 + * @param isClear true琛ㄧず娓呯┖缂撳瓨 */ - private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) { - - //鎼滅储鍏抽敭瀛� - if (TextUtils.isEmpty(currSearchText)) { - return; - } - + private void loadNextPageMessageList(boolean isShowLoading, int pageNo, String search_title, boolean isClear) { if (isClear) { - clearData(); + //琛ㄧず浠庣涓�椤靛彲浠ヨ鍙栵紝榛樿娓呯┖鎵�鏈夌紦瀛樻暟鎹�; + clearCacheData(); } - //绗竴椤佃鍙栨暟鎹己鍒惰鍙� - if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) { - --currentHouseListPage; + //绗竴椤佃鍙栨暟鎹己鍒惰 + if (pageNo > 1 && mCurrentPage > mCurrentTotal) { + --mCurrentPage; //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁� return; } - isHouseLoadingMore = true;//鏍囪璇诲彇鐘舵�� - if (isRefreshing) { + isLoadingMore = true;//鏍囪璇诲彇鐘舵�� + if (isShowLoading) { showLoading(); } - - //鑾峰彇浜戠涓婅澶囧垪琛� - HdlDeviceLogic.getInstance().getPowerStationDeviceList(currSearchText, pageNo, 20, new CloudCallBeak<PageNumberObject<DeviceBean>>() { - @Override - public void onSuccess(PageNumberObject<DeviceBean> deviceClass) { - HdlThreadLogic.runMainThread(new Runnable() { + HdlMessageLogic.getInstance().getPageNoMessageList( + "", + pageNo, + "", + "", + "", + "", + "", + "", + "", + search_title, + new CloudCallBeak<HdlMessageLogic.MessageListClass>() { @Override - public void run() { - if (isRefreshing) { + public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) { + if (messageListClass != null) { + mCurrentTotal = (int) messageListClass.getTotalPage(); + mCurrentPage = (int) messageListClass.getPageNo(); + setMessageList(messageListClass.getList()); + updateListData(); + } + isLoadingMore = false; + if (isShowLoading) { hideLoading(); } - isHouseLoadingMore = false; - if (deviceClass != null) { - currentHouseListTotal = (int) deviceClass.getTotalPage(); - currentHouseListPage = (int) deviceClass.getPageNo(); - //鏇存柊缂撳瓨 - setDeviceList(deviceClass.getList()); - if (searchMessageAdapter != null) { - initData(); - //鏇存柊UI - searchMessageAdapter.setList(deviceList); - } - } } - }, _mActivity, ShowErrorMode.YES); - } - - @Override - public void onFailure(HDLException e) { - HdlThreadLogic.runMainThread(new Runnable() { @Override - public void run() { - if (currentHouseListPage > 1) { - --currentHouseListPage; + public void onFailure(HDLException e) { + if (mCurrentPage > 1) { + --mCurrentPage; } - isHouseLoadingMore = false; - if (isRefreshing) { + isLoadingMore = false; + if (isShowLoading) { hideLoading(); } - } - }, _mActivity, ShowErrorMode.YES); - } - }); + }); + + } - private void clearData() { - if (deviceList != null && deviceList.size() > 0) { - deviceList.clear(); + + private void clearCacheData() { + if (mList != null && mList.size() > 0) { + mList.clear(); } } - public void setDeviceList(List<DeviceBean> list) { + public void setMessageList(List<MessageBean> list) { if (list == null || list.size() == 0) { return; } - if (this.deviceList.size() == 0) { - this.deviceList.addAll(list); + if (this.mList.size() == 0) { + this.mList.addAll(list); return; } for (int i = 0; i < list.size(); i++) { @@ -337,26 +349,26 @@ /** * 娣诲姞璁惧鍒板垪琛ㄩ噷闈� * - * @param deviceBean -璁惧瀵硅薄 + * @param messageBean -璁惧瀵硅薄 */ - public void setSingleDevice(DeviceBean deviceBean) { + public void setSingleDevice(MessageBean messageBean) { try { - if (deviceBean == null) { + if (messageBean == null) { return; } boolean if_boolean = false; - for (int i = 0; i < deviceList.size(); i++) { - if (deviceList.get(i).getHomeId().equals(deviceBean.getHomeId())) { + for (int i = 0; i < mList.size(); i++) { + if (mList.get(i).getHomeId().equals(messageBean.getHomeId())) { //瀛樺湪鏇挎崲 - deviceList.remove(i); - deviceList.add(i, deviceBean); + mList.remove(i); + mList.add(i, messageBean); if_boolean = true; break; } } if (!if_boolean) { //娌℃湁娣诲姞 - this.deviceList.add(deviceBean); + this.mList.add(messageBean); } } catch (Exception e) { String mes = e.getMessage(); -- Gitblit v1.8.0