From 43c0a28db7e43959561036dbde0eb5cb37a7e324 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 10 五月 2024 18:25:40 +0800
Subject: [PATCH] 2024年05月10日18:25:29

---
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/CustomStyleChartComposer.java |   10 
 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java                   |    7 
 app/src/main/AndroidManifest.xml                                                             |    3 
 app/src/main/res/layout/activity_device_search.xml                                           |    4 
 app/src/main/res/layout/activity_house_search.xml                                            |    4 
 app/src/main/java/com/hdl/photovoltaic/ui/adapter/SearchMessageAdapter.java                  |  115 ++++++
 /dev/null                                                                                    |  259 ---------------
 app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java                 |  392 +++++++++++++++++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/AAChartSymbolConst.java       |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java                       |   18 +
 app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java                         |    3 
 app/src/main/res/layout/activity_search_messge.xml                                           |  167 +++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/BasicChartComposer.java       |    2 
 13 files changed, 709 insertions(+), 277 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f6c3993..e0c48cf 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -77,6 +77,9 @@
         android:supportsRtl="true"
         android:theme="@style/Theme.PhotovoltaicDebug">
         <activity
+            android:name=".ui.message.SearchMessageActivity"
+            android:exported="false" />
+        <activity
             android:name=".ui.powerstation.DeviceSearchActivity"
             android:exported="false" />
         <activity
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/SearchMessageAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/SearchMessageAdapter.java
new file mode 100644
index 0000000..da3d0b1
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/SearchMessageAdapter.java
@@ -0,0 +1,115 @@
+package com.hdl.photovoltaic.ui.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.ui.bean.DeviceBean;
+import com.hdl.photovoltaic.widget.SwipeLayout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鎼滅储娑堟伅閫傞厤鍣�
+ */
+public class SearchMessageAdapter extends RecyclerView.Adapter<SearchMessageAdapter.MyViewHolder> {
+
+    List<DeviceBean> mList;
+
+    Context mContext;
+
+    OnClickListener mOnclickListener;
+
+    public SearchMessageAdapter(Context context) {
+
+        this.mContext = context;
+    }
+
+    @NonNull
+    @Override
+    public SearchMessageAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        View contentItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_device_details, parent, false);
+        return new SearchMessageAdapter.MyViewHolder(contentItem);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull SearchMessageAdapter.MyViewHolder holder, int position) {
+        DeviceBean deviceBean = this.mList.get(position);
+        holder.itemView.setTag(position);
+        holder.itemView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                try {
+                    if (mOnclickListener != null) {
+                        mOnclickListener.onClick((int) holder.itemView.getTag(), deviceBean);
+                    }
+                } catch (Exception ignored) {
+                }
+            }
+        });
+
+    }
+
+    @Override
+    public int getItemCount() {
+        return this.mList == null ? 0 : this.mList.size();
+    }
+
+    public void setOnclickListener(OnClickListener onClickListener) {
+        this.mOnclickListener = onClickListener;
+    }
+
+    public void setList(List<DeviceBean> newData) {
+        if (this.mList == null) {
+            this.mList = new ArrayList<>();
+        } else {
+            this.mList.clear();
+        }
+
+        this.mList.addAll(newData);
+        notifyDataSetChanged();
+    }
+
+    /**
+     * 涓�琛屽竷灞�瀹瑰櫒
+     */
+    static class MyViewHolder extends RecyclerView.ViewHolder {
+
+        public ImageView homeIconIv;//浣忓畢鍥剧墖
+        public TextView homeNameTv;//浣忓畢鍚嶇О
+        public TextView capacityTv;//瑁呮満瀹归噺
+        public TextView powerTv;//鍙戠數鍔熺巼
+        public TextView stateTv;//鐢电珯鐘舵��(杩炴帴涓�,杩愯,绂荤嚎,鏁呴殰);
+        public RelativeLayout item_parent_rl;//鏉$洰鐖跺鍣�
+        public ImageView move_home_iv;//绉诲姩鐢电珯浣嶇疆
+        public ImageView del_home_iv;//鍒犻櫎鐢电珯
+        public SwipeLayout item_parent_swipeLayout;//鐖跺鍣�
+
+        public MyViewHolder(@NonNull View itemView) {
+            super(itemView);
+            homeIconIv = itemView.findViewById(R.id.device_details_image_iv);
+            homeNameTv = itemView.findViewById(R.id.device_details_name_tv);
+            capacityTv = itemView.findViewById(R.id.device_details_sn_tv);
+            powerTv = itemView.findViewById(R.id.power_type_tv);
+            stateTv = itemView.findViewById(R.id.fragment_house_list_line_state_tv);
+            item_parent_rl = itemView.findViewById(R.id.item_parent_rl);
+            move_home_iv = itemView.findViewById(R.id.move_home_iv);
+            del_home_iv = itemView.findViewById(R.id.del_home_iv);
+            item_parent_swipeLayout = itemView.findViewById(R.id.item_parent_swipeLayout);
+        }
+    }
+
+    public interface OnClickListener {
+        void onClick(int position, DeviceBean deviceBean);
+
+    }
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
index b13c13a..58309c2 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -1,7 +1,7 @@
 package com.hdl.photovoltaic.ui.home;
 
 
-import static com.hdl.photovoltaic.ui.home.CustomStyleChartComposer.configureColorfulColumnChart;
+import static com.hdl.photovoltaic.ui.powerstation.aachart.CustomStyleChartComposer.configureColorfulColumnChart;
 
 import android.os.Bundle;
 import android.text.TextUtils;
@@ -33,6 +33,7 @@
 import com.hdl.photovoltaic.ui.bean.DataOverBean;
 import com.hdl.photovoltaic.ui.bean.SocialContributionBean;
 import com.hdl.photovoltaic.ui.bean.StatisticsBean;
+import com.hdl.photovoltaic.ui.powerstation.aachart.BasicChartComposer;
 import com.hdl.photovoltaic.utils.TimeUtils;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 
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 3c1e038..7d4221d 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
@@ -41,7 +41,7 @@
 import java.util.Map;
 
 /**
- * 娑堟伅
+ * 娑堟伅妯″潡鐣岄潰
  */
 public class MessageFragment extends CustomBaseFragment {
 
@@ -84,6 +84,7 @@
 
     private void initEvent() {
 
+
         //鍙戠敓涓�
         viewBinding.messageTabNascentTitleTv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -110,6 +111,15 @@
                 viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text20Style);
                 viewBinding.allClearTv.setVisibility(View.GONE);
                 loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
+            }
+        });
+        //鎼滅储娑堟伅
+        viewBinding.messageSearchCl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(_mActivity, SearchMessageActivity.class);
+                startActivity(intent);
             }
         });
 
@@ -284,6 +294,12 @@
                 HdlLogLogic.print("姝e湪鐐瑰嚮銆愭秷鎭��");
 
             }
+        } else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
+            if (eventBus.getType().equals(MessageStateType.untreated)) {
+                updateListData();
+            }/* else if (eventBus.getType().equals(MessageStateType.processed)) {
+                updateListData();
+            }*/
         }
     }
 
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
index c0b0223..4cf04f1 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
@@ -1,7 +1,6 @@
 package com.hdl.photovoltaic.ui.message;
 
 
-import android.annotation.SuppressLint;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.view.View;
@@ -91,8 +90,8 @@
                             type = _mActivity.getString(R.string.message_alarm);
                             drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300);
                         } else if (mMessageBean.getType().equals(MessageAlarmStateType.event)) {
-                            type = _mActivity.getString(R.string.event);
-                            drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300);
+                            type = _mActivity.getString(R.string.loading_title_tip);
+                            drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.state_b9b9b9);
                         }
                         viewBinding.messageInfoAlarmStateTv.setText(type);
                         viewBinding.messageInfoAlarmStateTv.setBackground(drawable);
@@ -186,8 +185,6 @@
                             sendEventBus();
                         }
                         finish();
-
-
                     }
 
                     @Override
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
deleted file mode 100644
index 0c39ece..0000000
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
+++ /dev/null
@@ -1,259 +0,0 @@
-package com.hdl.photovoltaic.ui.message;
-
-import android.content.Intent;
-import android.os.Bundle;
-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.google.gson.Gson;
-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.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.BUserInfo;
-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;
-
-/**
- * 娑堟伅-宸叉仮澶�
- */
-public class RecoverMessageFragment extends CustomBaseFragment {
-
-    FragmentRecoverMessageBinding viewBinding;
-
-    private MessageAdapter messageRecoverAdapter;
-    private int currentPage = 0; // 褰撳墠椤电爜
-    private int currentTotal = 0; // 鎬婚〉鐮�
-
-    private int totalCount = 0;//娑堟伅鏁伴噺鎬绘暟
-
-    private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
-
-    private final List<MessageBean> mList = new ArrayList<>();
-
-    @Override
-    public Object getContentView() {
-        viewBinding = FragmentRecoverMessageBinding.inflate(getLayoutInflater());
-        return viewBinding.getRoot();
-    }
-
-    @Override
-    public void onBindView(Bundle savedInstanceState) {
-        //鍒濆鍖栫晫闈�
-        initView();
-        //鍒濆鍖栫洃鍚櫒
-        initEvent();
-        //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�)
-        loadNextPageRecoverMessageList(1, true);
-    }
-
-    /**
-     * 鏇存柊鏈湴缂撳瓨鏁版嵁
-     */
-    private void updatelocalityCacheData() {
-        mList.clear();
-        mList.addAll(HdlMessageLogic.getInstance().getRecoverMessageMemoryList());
-
-    }
-
-    private void initEvent() {
-        //璁剧疆涓嬫媺绠ご棰滆壊
-        viewBinding.messageRecoverSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        viewBinding.messageRecoverSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.messageRecoverSrl.setRefreshing(false);
-                mList.clear();//琛ㄧず寮哄埗閲嶆柊璇锋眰绗竴椤垫秷鎭垪琛�
-                HdlMessageLogic.getInstance().clearListMessage();//琛ㄧず寮哄埗娓呯┖鎵�鏈夌紦瀛樹俊鎭�
-                loadNextPageRecoverMessageList(1, true);
-            }
-        });
-//        messageRecoverAdapter.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.messageRecoverRecyclerview.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("--->婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageRecoverMessageList(++currentPage, false);
-                    }
-                }
-            }
-        });
-    }
-
-
-    private void initView() {
-        viewBinding.messageRecoverRecyclerview.setLayoutManager(new LinearLayoutManager(_mActivity));
-        messageRecoverAdapter = new MessageAdapter(_mActivity);
-        viewBinding.messageRecoverRecyclerview.setAdapter(messageRecoverAdapter);
-    }
-
-
-    /**
-     * 鍒锋柊鍒楄〃鏁版嵁
-     */
-    private void updateListData() {
-
-        HdlThreadLogic.runMainThread(new Runnable() {
-            @Override
-            public void run() {
-                //鏇存柊鏈湴缂撳瓨鏁版嵁
-                updatelocalityCacheData();
-                //鍒锋柊鍒楄〃
-                if (messageRecoverAdapter != null) {
-                    messageRecoverAdapter.setList(mList);
-                    messageRecoverAdapter.notifyDataSetChanged();
-                }
-                //鍒锋柊銆愬凡鎭㈠銆戜俊鎭暟閲忔�绘暟
-                refreshRecoverCount();
-                //鏄剧ず娌℃暟鎹甎i鏍峰紡
-                nullDataUpdateUi();
-            }
-        });
-
-    }
-
-
-    @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.recover.toString())) {
-                // 鍙栨秷绮樻�т簨浠�
-                EventBus.getDefault().removeStickyEvent(eventBus);
-            }
-        } else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
-            if (eventBus.getType().equals(MessageStateType.processed)) {
-                //娑堟伅璇︽儏鍥炶皟
-                updatelocalityCacheData();
-                ++totalCount;
-                updateListData();
-
-            }
-        }
-    }
-
-    /**
-     * 鍔犺浇涓�椤垫暟鎹�
-     *
-     * @param pageNo        椤垫暟
-     * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
-     */
-    private void loadNextPageRecoverMessageList(int pageNo, boolean isShowLoading) {
-        //绗竴椤佃鍙栨暟鎹己鍒惰
-        if (pageNo > 1 && currentPage > currentTotal) {
-            --currentPage;
-            //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
-            return;
-        }
-        isLoadingMore = true;//鏍囪璇诲彇鐘舵��
-        if (isShowLoading) {
-            showLoading();
-        }
-        HdlMessageLogic.getInstance().getPageNoMessageList(pageNo, MessageStateType.processed, new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
-            @Override
-            public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
-                if (messageListClass != null) {
-                    currentTotal = (int) messageListClass.getTotalPage();
-                    currentPage = (int) messageListClass.getPageNo();
-                    totalCount = (int) messageListClass.getTotalCount();
-                    updateListData();
-                }
-                isLoadingMore = false;
-                if (isShowLoading) {
-                    hideLoading();
-                }
-            }
-
-            @Override
-            public void onFailure(HDLException e) {
-                if (currentPage > 1) {
-                    --currentPage;
-                }
-                isLoadingMore = false;
-                if (isShowLoading) {
-                    hideLoading();
-                }
-            }
-        });
-    }
-
-
-    /**
-     * 鍒锋柊銆愬凡鎭㈠銆戜俊鎭暟閲忔�绘暟
-     */
-    private void refreshRecoverCount() {
-        HdlThreadLogic.runMainThread(new Runnable() {
-            @Override
-            public void run() {
-                TextView textView = _mActivity.findViewById(R.id.message_tab_recover_title_tv);
-                if (textView != null) {
-                    textView.setText(getText(R.string.message_recover));
-                    if (mList.size() > 0) {
-                        String s = getText(R.string.message_recover) + "(" + totalCount + ")";
-                        textView.setText(s);
-                    }
-                }
-
-            }
-        });
-    }
-
-    /**
-     * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
-     */
-    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);
-    }
-
-}
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
new file mode 100644
index 0000000..aecfe33
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
@@ -0,0 +1,392 @@
+package com.hdl.photovoltaic.ui.message;
+
+
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.base.CustomBaseActivity;
+import com.hdl.photovoltaic.bean.PageNumberObject;
+import com.hdl.photovoltaic.databinding.ActivitySearchMessgeBinding;
+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.HdlThreadLogic;
+import com.hdl.photovoltaic.ui.adapter.SearchHistoryAdapter;
+import com.hdl.photovoltaic.ui.adapter.SearchMessageAdapter;
+import com.hdl.photovoltaic.ui.bean.DeviceBean;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 娑堟伅鎼滅储鐣岄潰
+ */
+public class SearchMessageActivity extends CustomBaseActivity {
+
+    private ActivitySearchMessgeBinding viewBinding;
+
+    SearchMessageAdapter searchMessageAdapter;//璁惧閫傞厤鍣�
+    SearchHistoryAdapter searchHistoryAdapter;//鍘嗗彶璁板綍閫傞厤鍣�
+
+    private List<DeviceBean> deviceList = new ArrayList<>();
+
+    private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜
+    private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮�
+    private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
+
+    private String currSearchText;
+
+    List<String> searchHistoryTitleList = new ArrayList<>();
+
+    @Override
+    public Object getContentView() {
+        viewBinding = ActivitySearchMessgeBinding.inflate(getLayoutInflater());
+        return viewBinding.getRoot();
+    }
+
+    @Override
+    public void onBindView(Bundle savedInstanceState) {
+        setStatusBarTranslucent();
+        //鍘嗗彶璁板綍鏂囦欢澶瑰垱寤�
+        HdlFileLogic.getInstance().createFileDir(HdlFileLogic.getInstance().getCurrentUserRootPath());
+        //鍒濆鍖栨暟鎹�
+        initData();
+        //鍒濆鍖�
+        initView();
+        //鍒濆鍖栫晫闈㈢洃鍚櫒
+        initEvent();
+    }
+
+    private void initData() {
+        try {
+            String json = HdlFileLogic.getInstance().readFile(getHistoryFileNamePath());
+            if (TextUtils.isEmpty(json)) {
+                return;
+            }
+            searchHistoryTitleList = new Gson().fromJson(json, new TypeToken<List<String>>() {
+            }.getType());
+        } catch (Exception ignored) {
+        }
+    }
+
+
+    private void initEvent() {
+
+        //鍚庨��
+        viewBinding.backRl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finish();
+            }
+        });
+        viewBinding.messageSearchEt.addTextChangedListener(textWatcher);
+
+
+        //鎼滅储
+        viewBinding.powerStationSearchTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //鎼滅储鍏抽敭瀛�
+                currSearchText = viewBinding.messageSearchEt.getText().toString().replace(" ", "");
+                if (TextUtils.isEmpty(currSearchText)) {
+                    HdlThreadLogic.toast(_mActivity, R.string.search_content_null);
+                    return;
+                }
+                viewBinding.historyListParent.setVisibility(View.GONE);
+                viewBinding.listParent.setVisibility(View.VISIBLE);
+                addSearchTextToList();
+                loadNextPageHouseList(true, 1, true);
+            }
+        });
+
+
+        //涓嬫媺绠ご棰滆壊
+        viewBinding.listSrl.setColorSchemeResources(R.color.text_FF245EC3);
+        //涓嬫媺璇诲彇
+        viewBinding.listSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                viewBinding.listSrl.setRefreshing(false);
+                loadNextPageHouseList(true, 1, true);
+            }
+        });
+        //涓婃媺璇诲彇
+        viewBinding.listRcv.addOnScrollListener(new RecyclerView.OnScrollListener() {
+            @Override
+            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int 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 (!isHouseLoadingMore) {
+                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                        HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+                        loadNextPageHouseList(false, ++currentHouseListPage, false);
+                    }
+                }
+            }
+        });
+        //娓呴櫎
+        viewBinding.powerStationClearIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                currSearchText = "";
+                viewBinding.messageSearchEt.setText("");
+                viewBinding.historyListParent.setVisibility(View.VISIBLE);
+                viewBinding.listParent.setVisibility(View.GONE);
+                searchHistoryAdapter.setList(searchHistoryTitleList);
+                clearData();
+            }
+        });
+        //鍒犻櫎
+        viewBinding.messageDelIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                searchHistoryTitleList = new ArrayList<>();
+                searchHistoryAdapter.setList(searchHistoryTitleList);
+                HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath());
+            }
+        });
+        //鍘嗗彶璁板綍鐐瑰嚮浜嬩欢
+        searchHistoryAdapter.setOnclickListener(new SearchHistoryAdapter.OnClickListener() {
+            @Override
+            public void onClick(int position, String title) {
+                viewBinding.messageSearchEt.setText(title);
+            }
+        });
+        //鐢电珯鐐瑰嚮鏄簨浠�
+        searchMessageAdapter.setOnclickListener(new SearchMessageAdapter.OnClickListener() {
+            @Override
+            public void onClick(int position, DeviceBean deviceBean) {
+
+            }
+        });
+
+    }
+
+    private void initView() {
+        viewBinding.historyListParent.setVisibility(View.VISIBLE);
+        viewBinding.listParent.setVisibility(View.GONE);
+        viewBinding.powerStationClearIv.setVisibility(View.GONE);
+        //鍒濆鍖栧巻鍙茶褰曢�傞厤鍣�
+        searchHistoryAdapter = new SearchHistoryAdapter(_mActivity);
+        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);
+    }
+
+
+    /**
+     * 杈撳叆鐢电珯鍚嶇О杩涜杩囨护
+     */
+    private final TextWatcher textWatcher = new TextWatcher() {
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+        }
+
+        @Override
+        public void onTextChanged(CharSequence s, int start, int before, int count) {
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+            String et = viewBinding.messageSearchEt.getText().toString().replace(" ", "");
+            if (TextUtils.isEmpty(et)) {
+                viewBinding.powerStationClearIv.setVisibility(View.GONE);
+            } else {
+                viewBinding.powerStationClearIv.setVisibility(View.VISIBLE);
+            }
+            viewBinding.messageSearchEt.setSelection(viewBinding.messageSearchEt.length());
+
+        }
+    };
+
+    /**
+     * 鐗╃悊鎸夐敭杩斿洖浜嬩欢
+     */
+    @Override
+    public void onBackPressed() {
+        super.onBackPressed();
+    }
+
+    @Override
+    protected void onDestroy() {
+        viewBinding.messageSearchEt.removeTextChangedListener(textWatcher);
+        if (searchHistoryTitleList.size() > 0) {
+            HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath());
+            HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList));
+        }
+        super.onDestroy();
+    }
+
+    /**
+     * 鍒锋柊UI锛堣澶囷級
+     *
+     * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
+     */
+    private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) {
+
+        //鎼滅储鍏抽敭瀛�
+        if (TextUtils.isEmpty(currSearchText)) {
+            return;
+        }
+
+        if (isClear) {
+            clearData();
+        }
+        //绗竴椤佃鍙栨暟鎹己鍒惰鍙�
+        if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) {
+            --currentHouseListPage;
+            //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
+            return;
+        }
+        isHouseLoadingMore = true;//鏍囪璇诲彇鐘舵��
+        if (isRefreshing) {
+            showLoading();
+        }
+
+        //鑾峰彇浜戠涓婅澶囧垪琛�
+        HdlDeviceLogic.getInstance().getPowerStationDeviceList(currSearchText, pageNo, 20, new CloudCallBeak<PageNumberObject<DeviceBean>>() {
+            @Override
+            public void onSuccess(PageNumberObject<DeviceBean> deviceClass) {
+                HdlThreadLogic.runMainThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (isRefreshing) {
+                            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;
+                        }
+                        isHouseLoadingMore = false;
+                        if (isRefreshing) {
+                            hideLoading();
+                        }
+
+                    }
+                }, _mActivity, ShowErrorMode.YES);
+            }
+        });
+    }
+
+    private void clearData() {
+        if (deviceList != null && deviceList.size() > 0) {
+            deviceList.clear();
+        }
+    }
+
+    public void setDeviceList(List<DeviceBean> list) {
+        if (list == null || list.size() == 0) {
+            return;
+        }
+        if (this.deviceList.size() == 0) {
+            this.deviceList.addAll(list);
+            return;
+        }
+        for (int i = 0; i < list.size(); i++) {
+            this.setSingleDevice(list.get(i));
+        }
+    }
+
+    /**
+     * 娣诲姞璁惧鍒板垪琛ㄩ噷闈�
+     *
+     * @param deviceBean -璁惧瀵硅薄
+     */
+    public void setSingleDevice(DeviceBean deviceBean) {
+        try {
+            if (deviceBean == null) {
+                return;
+            }
+            boolean if_boolean = false;
+            for (int i = 0; i < deviceList.size(); i++) {
+                if (deviceList.get(i).getHomeId().equals(deviceBean.getHomeId())) {
+                    //瀛樺湪鏇挎崲
+                    deviceList.remove(i);
+                    deviceList.add(i, deviceBean);
+                    if_boolean = true;
+                    break;
+                }
+            }
+            if (!if_boolean) {
+                //娌℃湁娣诲姞
+                this.deviceList.add(deviceBean);
+            }
+        } catch (Exception e) {
+            String mes = e.getMessage();
+            HdlLogLogic.print("--->" + mes);
+        }
+    }
+
+    /**
+     * 娣诲姞鍘嗗彶璁板綍
+     */
+    private void addSearchTextToList() {
+        for (int i = 0; i < searchHistoryTitleList.size(); i++) {
+            if (searchHistoryTitleList.get(i).equals(currSearchText)) {
+                searchHistoryTitleList.remove(searchHistoryTitleList.get(i));
+            }
+        }
+        searchHistoryTitleList.add(currSearchText);
+        // 鍊掑簭鎺掑垪鏁版嵁(鎼滅储鏈�鍚庢帓鍦ㄥ墠闈�)
+        Collections.reverse(searchHistoryTitleList);
+        if (searchHistoryTitleList.size() > 10) {
+            //鍘嗗彶璁板綍涓嶈兘瓒呭嚭10
+            searchHistoryTitleList.remove(searchHistoryTitleList.get(11));
+        }
+
+    }
+
+    /**
+     * 鑾峰彇銆愭悳绱㈠巻鍙茶褰曟枃浠躲�戝叏璺緞
+     */
+    public String getHistoryFileNamePath() {
+        return HdlFileLogic.getInstance().getCurrentUserRootPath() + "/message.txt";
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/AAChartSymbolConst.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/AAChartSymbolConst.java
similarity index 98%
rename from app/src/main/java/com/hdl/photovoltaic/ui/home/AAChartSymbolConst.java
rename to app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/AAChartSymbolConst.java
index de81366..8018af9 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/AAChartSymbolConst.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/AAChartSymbolConst.java
@@ -1,4 +1,4 @@
-package com.hdl.photovoltaic.ui.home;
+package com.hdl.photovoltaic.ui.powerstation.aachart;
 
 import com.github.AAChartModel.AAChartCore.AAChartEnum.AAChartSymbolType;
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/BasicChartComposer.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/BasicChartComposer.java
similarity index 99%
rename from app/src/main/java/com/hdl/photovoltaic/ui/home/BasicChartComposer.java
rename to app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/BasicChartComposer.java
index 54fbb8a..2c53e76 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/BasicChartComposer.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/BasicChartComposer.java
@@ -1,4 +1,4 @@
-package com.hdl.photovoltaic.ui.home;
+package com.hdl.photovoltaic.ui.powerstation.aachart;
 
 import static com.github.AAChartModel.AAChartCore.AATools.AAColor.AARgba;
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/CustomStyleChartComposer.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/CustomStyleChartComposer.java
similarity index 99%
rename from app/src/main/java/com/hdl/photovoltaic/ui/home/CustomStyleChartComposer.java
rename to app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/CustomStyleChartComposer.java
index 891401c..3dfc464 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/CustomStyleChartComposer.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/aachart/CustomStyleChartComposer.java
@@ -1,10 +1,10 @@
-package com.hdl.photovoltaic.ui.home;
+package com.hdl.photovoltaic.ui.powerstation.aachart;
 
 import static com.github.AAChartModel.AAChartCore.AATools.AAColor.AARgba;
-import static com.hdl.photovoltaic.ui.home.AAChartSymbolConst.base64Symbol;
-import static com.hdl.photovoltaic.ui.home.AAChartSymbolConst.imageSymbol;
-import static com.hdl.photovoltaic.ui.home.AAChartSymbolConst.predefinedSymbol1;
-import static com.hdl.photovoltaic.ui.home.AAChartSymbolConst.predefinedSymbol2;
+import static com.hdl.photovoltaic.ui.powerstation.aachart.AAChartSymbolConst.base64Symbol;
+import static com.hdl.photovoltaic.ui.powerstation.aachart.AAChartSymbolConst.imageSymbol;
+import static com.hdl.photovoltaic.ui.powerstation.aachart.AAChartSymbolConst.predefinedSymbol1;
+import static com.hdl.photovoltaic.ui.powerstation.aachart.AAChartSymbolConst.predefinedSymbol2;
 
 import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartModel;
 import com.github.AAChartModel.AAChartCore.AAChartCreator.AASeriesElement;
diff --git a/app/src/main/res/layout/activity_device_search.xml b/app/src/main/res/layout/activity_device_search.xml
index bf4544d..9ee799d 100644
--- a/app/src/main/res/layout/activity_device_search.xml
+++ b/app/src/main/res/layout/activity_device_search.xml
@@ -91,7 +91,7 @@
 
 
     </RelativeLayout>
-
+    <!--鍘嗗彶璁板綍-->
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/history_list_parent"
         android:layout_width="match_parent"
@@ -136,7 +136,7 @@
             app:layout_constraintTop_toTopOf="parent" />
 
     </androidx.constraintlayout.widget.ConstraintLayout>
-
+    <!--鎼滅储鏁版嵁-->
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/list_parent"
         android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/activity_house_search.xml b/app/src/main/res/layout/activity_house_search.xml
index 977d256..f404390 100644
--- a/app/src/main/res/layout/activity_house_search.xml
+++ b/app/src/main/res/layout/activity_house_search.xml
@@ -90,7 +90,7 @@
 
 
     </RelativeLayout>
-
+    <!--鍘嗗彶璁板綍-->
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/history_list_parent"
         android:layout_width="match_parent"
@@ -135,7 +135,7 @@
             app:layout_constraintTop_toTopOf="parent" />
 
     </androidx.constraintlayout.widget.ConstraintLayout>
-
+    <!--鎼滅储鏁版嵁-->
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/list_parent"
         android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/activity_search_messge.xml b/app/src/main/res/layout/activity_search_messge.xml
new file mode 100644
index 0000000..9377c5d
--- /dev/null
+++ b/app/src/main/res/layout/activity_search_messge.xml
@@ -0,0 +1,167 @@
+<?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_F5F7FA"
+    tools:context=".ui.message.SearchMessageActivity">
+    <!--鎼滅储-->
+    <RelativeLayout
+        android:id="@+id/message_search_cl"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_35"
+        android:layout_marginTop="@dimen/dp_48"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <RelativeLayout
+            android:id="@+id/back_rl"
+            android:layout_width="@dimen/dp_50"
+            android:layout_height="match_parent">
+
+            <ImageView
+                android:id="@+id/message_back_iv"
+                android:layout_width="@dimen/dp_10"
+                android:layout_height="@dimen/dp_17"
+                android:layout_alignParentStart="true"
+                android:layout_centerVertical="true"
+                android:layout_marginStart="@dimen/dp_16"
+                android:src="@drawable/search_back" />
+        </RelativeLayout>
+
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginStart="@dimen/dp_7"
+            android:layout_marginEnd="@dimen/dp_21"
+            android:layout_toStartOf="@+id/power_station_search_tv"
+            android:layout_toEndOf="@+id/back_rl"
+            android:background="@drawable/search_bj_ff05000000">
+
+            <ImageView
+                android:id="@+id/message_search_iv"
+                android:layout_width="@dimen/dp_18"
+                android:layout_height="@dimen/dp_18"
+                android:layout_alignParentStart="true"
+                android:layout_centerVertical="true"
+                android:layout_marginStart="@dimen/dp_13"
+                android:src="@drawable/search_path" />
+
+            <EditText
+                android:id="@+id/message_search_et"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_alignParentEnd="true"
+                android:layout_centerVertical="true"
+                android:layout_marginStart="@dimen/dp_11"
+                android:layout_marginEnd="@dimen/dp_40"
+                android:layout_toEndOf="@+id/message_search_iv"
+                android:background="@null"
+                android:gravity="start|center_vertical"
+                android:hint="Search the power station"
+                android:textColor="@color/text_90000000"
+                android:textColorHint="@color/text_40000000"
+                android:textSize="@dimen/text_14" />
+
+            <ImageView
+                android:id="@+id/power_station_clear_iv"
+                android:layout_width="@dimen/dp_20"
+                android:layout_height="@dimen/dp_20"
+                android:layout_alignParentEnd="true"
+                android:layout_centerVertical="true"
+                android:layout_marginEnd="@dimen/dp_13"
+                android:src="@drawable/clear" />
+        </RelativeLayout>
+
+        <TextView
+            android:id="@+id/power_station_search_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_alignParentEnd="true"
+            android:layout_centerVertical="true"
+            android:layout_marginEnd="@dimen/dp_21"
+            android:gravity="center"
+            android:text="@string/search"
+            android:textColor="@color/text_90000000"
+            android:textSize="@dimen/text_16" />
+
+
+    </RelativeLayout>
+    <!--鍘嗗彶璁板綍-->
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/history_list_parent"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/message_search_cl">
+
+        <TextView
+            android:id="@+id/history_list_title_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_23"
+            android:layout_marginStart="@dimen/dp_16"
+            android:layout_marginTop="@dimen/dp_23"
+            android:layout_marginEnd="@dimen/dp_21"
+            android:text="@string/history_search"
+            android:textColor="@color/text_90000000"
+            android:textSize="@dimen/text_16"
+            android:textStyle="bold"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <ImageView
+            android:id="@+id/message_del_iv"
+            android:layout_width="@dimen/dp_26"
+            android:layout_height="@dimen/dp_26"
+            android:layout_marginTop="@dimen/dp_21"
+            android:layout_marginEnd="@dimen/dp_16"
+            android:src="@drawable/history_del"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/history_list_rcv"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_marginTop="67dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+    <!--鎼滅储鏁版嵁-->
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/list_parent"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_marginTop="@dimen/dp_30"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/message_search_cl">
+
+        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+            android:id="@+id/list_srl"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/list_rcv"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file

--
Gitblit v1.8.0