From 04fa70b5c61f927e4b5e3c85e9fe9e116d79102e Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 18 十一月 2025 17:09:10 +0800
Subject: [PATCH] 2025年11月18日17:09:03

---
 app/src/main/res/drawable/red_message_house_font.xml                               |    5 
 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageActivity.java             |   78 ++-
 app/src/main/res/layout/fragment_message.xml                                       |   26 
 app/src/main/AndroidManifest.xml                                                   |   10 
 app/src/main/res/layout/activity_message.xml                                       |  244 ++++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java              |    4 
 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageHouseFragment.java        |  409 +++++++++++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageHouseAdapter.java         |  162 +++++++
 app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java               |   13 
 app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java                        |   21 
 app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java                   |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java               |   17 
 app/src/main/res/layout/fragement_message_house.xml                                |  106 ++++
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java |   21 
 app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java                  |    4 
 app/src/main/res/layout/item_message_house.xml                                     |  102 ++++
 app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java                 |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java                    |   22 
 app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java                  |   82 +++
 19 files changed, 1,261 insertions(+), 69 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4e89854..aaecda6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -10,13 +10,13 @@
     <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- Android13 闊抽 -->
     <!-- <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> -->
     <uses-permission android:name="android.permission.VIBRATE" /> <!-- honor 瑙掓爣 -->
-    <!--    <uses-permission android:name="android.permission.VIBRATE" />-->
+    <!-- <uses-permission android:name="android.permission.VIBRATE" /> -->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />&lt;!&ndash;澶栭儴瀛樺偍鐩綍璁块棶鏉冮檺 璋锋瓕play涓婃灦涓嶄簡&ndash;&gt; -->
     <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <!-- wifi鐘舵�佹潈闄� -->
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- 鍓嶅彴鏈嶅姟鏉冮檺 -->
-    <!--    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />-->
+    <!-- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> -->
     <uses-permission android:name="android.permission.INTERNET" /> <!-- 寮�鍚綉缁滄潈闄� -->
     <!-- 浣嶇疆淇℃伅 -->
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 妫�娴嬭仈缃戞柟寮忥紝鍦ㄧ綉缁滃紓甯哥姸鎬佷笅閬垮厤鏁版嵁鍙戦�侊紝鑺傜渷娴侀噺鍜岀數閲忋�� -->
@@ -69,6 +69,12 @@
         android:supportsRtl="true"
         android:theme="@style/Theme.PhotovoltaicDebug">
         <activity
+            android:name=".ui.message.MessageActivity"
+            android:exported="false" />
+        <activity
+            android:name=".ui.message.PowerStationMessageSearchActivity"
+            android:exported="false" />
+        <activity
             android:name=".ui.me.HelpWebActivity"
             android:exported="false" />
         <activity
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java b/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
index bab7ccc..12d388d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
@@ -10,7 +10,7 @@
 public class AppConfigManage {
 
     /*********鏄惁姝e紡鏈嶅姟鍣�*********/
-    private static boolean isOnlineServer =true;// UserConfigManage.getInstance().isOnlineServer();
+    private static boolean isOnlineServer =false;// UserConfigManage.getInstance().isOnlineServer();
     /*********姝e紡鐜*********/
     private static final String APP_KEY_ONLINE = "CSZEMDJL";
     private static final String APP_SECRET_ONLINE = "CSZEMDKBCSZEMDKR";
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
index edc8375..dfe7e26 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
@@ -21,8 +21,8 @@
      * 娑堟伅璀﹀憡瑙e喅鎴栬�呮湭瑙e喅浜嬩欢
      */
     public static final String message_function_push_post = "message_function_push";
-    //娑堟伅鏁伴噺
-    public static final String message_count = "message_count";
+    //鍒锋柊娑堟伅浣忓畢
+    public static final String refresh_message_house = "refresh_message_house";
     public static final String homepage_title_tab_switch = "homepage_title_tab_switch";
 
     public static final String home_del = "home_del";
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
index 7837e3f..55e7794 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -20,6 +20,8 @@
     public static final String POST_Message_List = "/home-wisdom/app/powerStation/message/listByPage";
     //娑堟伅鍒楄〃锛堝尮閰嶇淮淇柟妗堬級
     public static final String POST_Message_Plan_List = "/home-wisdom/app/powerStation/message/plan/listByPage";
+    //娑堟伅鍒楄〃锛堝尮閰嶇淮淇柟妗堬級鐢电珯绾害
+    public static final String POST_Message_Plan_homeListByPage = "/home-wisdom/app/powerStation/message/plan/homeListByPage";
     //鑾峰彇娑堟伅璇︽儏
     public static final String POST_Message_Info = "/home-wisdom/app/powerStation/message/info";
     //鑾峰彇娑堟伅璇︽儏(鍖归厤缁翠慨鏂规锛�
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
index ad21ee7..c63c146 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -672,6 +672,88 @@
     }
 
 
+    /**
+     * 鑾峰彇娑堟伅浣忓畢鍒楄〃
+     *
+     * @param homeName      鐢电珯鍚嶇О锛堟悳绱㈢敤鐨勶級,濡傛灉鏄┖瀛楃涓查粯璁よ鍙栧叏閮�
+     * @param cloudCallBeak -
+     */
+    public void getMessageHouseList(String homeName, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
+        String requestUrl = HttpApi.POST_Message_Plan_homeListByPage;
+        JsonObject json = new JsonObject();
+
+        if (!TextUtils.isEmpty(homeName)) {
+            json.addProperty("homeName", homeName);
+        }
+        json.addProperty("pageNo", 1);//椤电爜
+        json.addProperty("pageSize", 500);//椤垫暟
+
+        final List<MessageBean> list = new ArrayList<>();
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String jsonStr) {
+                if (TextUtils.isEmpty(jsonStr)) {
+                    if (cloudCallBeak != null) {
+                        cloudCallBeak.onSuccess(new ArrayList<>());
+                    }
+                    return;
+                }
+                Gson gson = new Gson();
+                MessageListClass oldMessageListClass = gson.fromJson(jsonStr, MessageListClass.class);
+                list.addAll(oldMessageListClass.getList());
+                //鎬诲叡鏈夊灏戦〉
+                long totalPage = oldMessageListClass.totalPage;
+                if (totalPage < 2) {
+                    if (cloudCallBeak != null) {
+                        cloudCallBeak.onSuccess(list);
+                    }
+                    return;
+                }
+                //璁板綍璇锋眰鏉℃暟
+                AtomicInteger atomicInteger = new AtomicInteger(0);
+                //浠庣浜岄〉鑾峰彇鏁版嵁
+                for (int i = 2; i <= totalPage; i++) {
+                    json.addProperty("pageNo", i);//鏇存柊椤电爜
+                    HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+                        @Override
+                        public void onSuccess(String jsonStr) {
+                            atomicInteger.set(atomicInteger.get() + 1);
+                            MessageListClass newMessageListClass = gson.fromJson(jsonStr, MessageListClass.class);
+                            list.addAll(newMessageListClass.getList());
+                            if (atomicInteger.get() == totalPage - 1) {
+                                //鏈�鍚庝竴鏉¢��鍑�
+                                if (cloudCallBeak != null) {
+                                    cloudCallBeak.onSuccess(list);
+                                }
+                            }
+                        }
+
+                        @Override
+                        public void onFailure(HDLException e) {
+                            atomicInteger.set(atomicInteger.get() + 1);
+                            if (atomicInteger.get() == totalPage - 1) {
+                                //鏈�鍚庝竴鏉¢��鍑�
+                                if (cloudCallBeak != null) {
+                                    cloudCallBeak.onSuccess(list);
+                                }
+                            }
+                        }
+                    });
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+
+
+    }
+
+
     public static class MessageListClass {
 
         //鎬绘潯鏁�
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
index e05ea20..f113a3d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
@@ -5,7 +5,6 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
-import androidx.lifecycle.Lifecycle;
 
 import android.Manifest;
 import android.content.Context;
@@ -17,12 +16,10 @@
 import android.os.SystemClock;
 import android.provider.Settings;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 
 import com.google.gson.Gson;
-import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.linkpm.sdk.home.type.HomeType;
@@ -48,18 +45,14 @@
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.other.HdlUniLogic;
 import com.hdl.photovoltaic.ui.bean.DeviceRemoteInfo;
-import com.hdl.photovoltaic.ui.bean.HouseIdBean;
 import com.hdl.photovoltaic.ui.bean.OidBean;
 import com.hdl.photovoltaic.ui.bean.UnCountBean;
 import com.hdl.photovoltaic.ui.home.HomePageFragment;
 import com.hdl.photovoltaic.ui.me.MeFragment;
-import com.hdl.photovoltaic.ui.message.MessageFragment;
-import com.hdl.photovoltaic.ui.newC.PowerStationsListActivity;
-import com.hdl.photovoltaic.ui.newC.PowerStationsMoveActivity;
+import com.hdl.photovoltaic.ui.message.MessageHouseFragment;
 import com.hdl.photovoltaic.ui.powerstation.HouseAndDeviceFragment;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.AppManagerUtils;
-import com.hdl.photovoltaic.utils.FragmentUtils;
 import com.hdl.photovoltaic.utils.GPSManagerUtils;
 import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.photovoltaic.utils.SharedPreUtils;
@@ -146,7 +139,7 @@
         //纰庣墖鍒濆鍖�
         HomePageFragment mHomePageFragment = new HomePageFragment();
         HouseAndDeviceFragment mHouseAndDeviceFragment = new HouseAndDeviceFragment();
-        MessageFragment mMessageFragment = new MessageFragment();
+        MessageHouseFragment mMessageHouseFragment = new MessageHouseFragment();
         MeFragment mMeFragment = new MeFragment();
         if (savedInstanceState != null) {
             //鈥滃唴瀛橀噸鍚�濇椂璋冪敤 鑾峰彇鈥滃唴瀛橀噸鍚�濇椂淇濆瓨鐨勭储寮曚笅鏍�
@@ -168,7 +161,7 @@
             }
             fragmentList.add(mHomePageFragment);
             fragmentList.add(mHouseAndDeviceFragment);
-            fragmentList.add(mMessageFragment);
+            fragmentList.add(mMessageHouseFragment);
             fragmentList.add(mMeFragment);
             this.showFragment();
         }
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 7ca2b67..5ee22c5 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
@@ -20,7 +20,9 @@
 
 import java.util.ArrayList;
 import java.util.List;
-
+/**
+ * 娑堟伅閫傞厤鍣�
+ */
 public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MyViewHolder> {
 
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageHouseAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageHouseAdapter.java
new file mode 100644
index 0000000..4bb528f
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageHouseAdapter.java
@@ -0,0 +1,162 @@
+package com.hdl.photovoltaic.ui.adapter;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.content.res.AppCompatResources;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.enums.DeviceType;
+import com.hdl.photovoltaic.enums.MessageAlarmStateType;
+import com.hdl.photovoltaic.ui.bean.MessageBean;
+import com.hdl.photovoltaic.utils.GlideUtils;
+import com.hdl.photovoltaic.utils.TimeUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 浣忓畢娑堟伅閫傞厤鍣�
+ */
+public class MessageHouseAdapter extends RecyclerView.Adapter<MessageHouseAdapter.MyViewHolder> {
+
+
+    private List<MessageBean> mList;
+    private final Context mContext;
+    private MessageHouseAdapter.OnClickListener mOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
+
+    public MessageHouseAdapter(Context context) {
+        this.mContext = context;
+    }
+
+    @NonNull
+    @Override
+    public MessageHouseAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        View view = LayoutInflater.from(mContext).inflate(R.layout.item_message_house, parent, false);
+        return new MessageHouseAdapter.MyViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull MessageHouseAdapter.MyViewHolder holder, int position) {
+        MessageBean messageBean = this.mList.get(position);
+        GlideUtils.getRoundedCornersImage(mContext, messageBean.getPowerStationImage(), holder.home_image_iv, 6);
+        holder.item_home_name_tv.setText(messageBean.getHomeName());
+        holder.item_content_tv.setText(messageBean.getTitle());
+        String date = TimeUtils.getDataFromTimestamp(messageBean.getCreateTime());
+        holder.item_time_tv.setText(date);
+        String type = "";//FAULT:鏁呴殰,WARN:鍛婅,EVENT:鎻愮ず
+        Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300);
+        if (messageBean.getType().equals(MessageAlarmStateType.fault)) {
+            type = mContext.getString(R.string.my_power_station_malfunction);
+            drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_fff55252);
+        } else if (messageBean.getType().equals(MessageAlarmStateType.warn)) {
+            type = mContext.getString(R.string.message_alarm);
+            drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300);
+        } else if (messageBean.getType().equals(MessageAlarmStateType.event)) {
+            type = mContext.getString(R.string.loading_title_tip);
+            drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_ffb9b9b9);
+        }
+//        holder.item_estate_tv.setText(type);
+        holder.item_estate_tv.setBackground(drawable);
+        final Long unreadCount = messageBean.getUnreadCount();
+        if (unreadCount == 0) {
+            holder.item_unread_message_tv.setVisibility(View.GONE);
+        } else {
+            holder.item_unread_message_tv.setVisibility(View.VISIBLE);
+            if (unreadCount > 99) {
+                holder.item_unread_message_tv.setText("99+");
+            } else {
+                holder.item_unread_message_tv.setText(unreadCount + "");
+            }
+        }
+        //鏍囪绱㈠紩
+        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(), messageBean);
+                    }
+                } catch (Exception ignored) {
+                }
+            }
+        });
+
+    }
+
+    @Override
+    public int getItemCount() {
+        return mList == null ? 0 : mList.size();
+    }
+
+
+    public void setList(List<MessageBean> newData) {
+        if (this.mList == null) {
+            this.mList = new ArrayList<>();
+        } else {
+            this.mList.clear();
+        }
+
+        this.mList.addAll(newData);
+        notifyDataSetChanged();
+    }
+
+    public void setOnclickListener(MessageHouseAdapter.OnClickListener onClickListener) {
+        this.mOnclickListener = onClickListener;
+    }
+
+    /**
+     * 涓�琛屽竷灞�瀹瑰櫒
+     */
+    static class MyViewHolder extends RecyclerView.ViewHolder {
+
+        public ImageView home_image_iv;
+        public TextView item_home_name_tv;
+        public TextView item_content_tv;
+        public TextView item_time_tv;
+        public TextView item_estate_tv;
+        public TextView item_unread_message_tv;
+
+        public MyViewHolder(@NonNull View itemView) {
+            super(itemView);
+            home_image_iv = itemView.findViewById(R.id.home_image_iv);
+            item_home_name_tv = itemView.findViewById(R.id.home_name_tv);
+            item_content_tv = itemView.findViewById(R.id.item_content_tv);
+            item_time_tv = itemView.findViewById(R.id.home_last_date_tv);
+            item_estate_tv = itemView.findViewById(R.id.item_estate_tv);
+            item_unread_message_tv = itemView.findViewById(R.id.item_unread_message_tv);
+        }
+    }
+
+    public interface OnClickListener {
+        void onClick(int position, MessageBean messageBean);
+    }
+
+    /**
+     * 閫氳繃鏋氫妇杞崲璁惧绫诲瀷鐨勫瓧绗�
+     *
+     * @param deviceType //璁惧绫诲瀷(INV 锛� 閫嗗彉鍣�, BMS 锛� BMS鎺у埗鐩�, BATTERY 锛� 鐢垫睜鍗曞厓)
+     * @return 璁惧绫诲瀷
+     */
+    private String getDeviceTypeStr(String deviceType) {
+        switch (deviceType) {
+            case DeviceType.inv:
+                return mContext.getString(R.string.alarm_all_device_inverter);
+            case DeviceType.bms:
+                return mContext.getString(R.string.alarm_all_device_bms);
+            case DeviceType.battery:
+                return mContext.getString(R.string.alarm_all_device_battery_cell);
+            default:
+                return "";
+        }
+    }
+
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java b/app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java
index ce3f836..0d86ad2 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java
@@ -13,12 +13,32 @@
     private String homeId;//鐢电珯id
     private String homeName;//鐢电珯鍚嶇О
     private String status;//UNTREATED:鏈鐞嗭紝PROCESSED:宸插鐞�
-    private Long createTime=0L;//娑堟伅鏃堕棿(鎶ヨ鏃堕棿)
+    private Long createTime = 0L;//娑堟伅鏃堕棿(鎶ヨ鏃堕棿)
+
 
     private String deviceOidId;//璁惧oid id
     private String deviceOid;//璁惧oid
     private String deviceDesc;//璁惧澶囨敞
 
+    public String getPowerStationImage() {
+        return powerStationImage == null ? "" : powerStationImage;
+    }
+
+    public void setPowerStationImage(String powerStationImage) {
+        this.powerStationImage = powerStationImage;
+    }
+
+    public Long getUnreadCount() {
+        return unreadCount;
+    }
+
+    public void setUnreadCount(Long unreadCount) {
+        this.unreadCount = unreadCount;
+    }
+
+    private String powerStationImage;//鐢电珯鍥剧墖
+    private Long unreadCount = 0L;//鐢电珯鏈娑堟伅鏁�
+
     public String getDescription() {
         return description == null ? "" : description;
     }
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 96f9445..bd2663a 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
@@ -131,9 +131,18 @@
 
     private void initEvent() {
         //鐢电珯娣诲姞
+        //鐐瑰嚮杩涘叆鏂伴厤缃叆缃戠晫闈�
         viewBinding.homePageStationAddIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
+                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
+            }
+        });
+        //闀挎寜杩涘叆鏃ч厤缃叆缃戠晫闈�
+        viewBinding.homePageStationAddIv.setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View v) {
                 UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
                 HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
 //                AddPowerStationDialog addPowerStationDialog = new AddPowerStationDialog(_mActivity);
@@ -160,14 +169,6 @@
 //                    }
 //                });
 
-
-            }
-        });
-        viewBinding.homePageStationAddIv.setOnLongClickListener(new View.OnLongClickListener() {
-            @Override
-            public boolean onLongClick(View v) {
-                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
-                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
                 return true;
             }
         });
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageActivity.java
similarity index 92%
rename from app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
rename to app/src/main/java/com/hdl/photovoltaic/ui/message/MessageActivity.java
index 2f63d48..3eaf048 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageActivity.java
@@ -5,39 +5,32 @@
 import android.content.Intent;
 import android.os.AsyncTask;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.TextView;
 
-
-import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
 import com.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.base.CustomBaseActivity;
 import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.databinding.FragmentMessageBinding;
 import com.hdl.photovoltaic.enums.FilterType;
-import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
 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.photovoltaic.ui.bean.UnCountBean;
 import com.hdl.photovoltaic.widget.BTypeTitleListDialog;
-import com.hdl.photovoltaic.widget.TypeTitleListDialog;
 import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
 import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 
-import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
@@ -46,16 +39,13 @@
 import java.util.List;
 import java.util.Map;
 
-/**
- * 娑堟伅妯″潡鐣岄潰
- */
-public class MessageFragment extends CustomBaseFragment {
+public class MessageActivity extends CustomBaseActivity {
 
     private FragmentMessageBinding viewBinding;
 
     private MessageAdapter mMessageAdapter;
     private boolean isAlarmDeviceClick = true;//true琛ㄧず鍛婅璁惧琚�変腑,鍒檉alse琛ㄧず鎶ヨ璁板綍琚�変腑
-
+    private MessageBean mMessageBean;
     private final List<MessageBean> mList = new ArrayList<>();
 
     private boolean isRefreshTotalCount = true;
@@ -82,6 +72,19 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
+        setStatusBarTranslucent();
+        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
+        try {
+            String json = getIntent().getStringExtra("messageBean");
+            mMessageBean = new Gson().fromJson(json, MessageBean.class);
+            if (mMessageBean == null) {
+                mMessageBean = new MessageBean();
+            }
+        } catch (Exception ignored) {
+            if (mMessageBean == null) {
+                mMessageBean = new MessageBean();
+            }
+        }
         //鍒濆鍖栫晫闈�
         initView();
         //鍒濆鍖栫洃鍚櫒
@@ -92,8 +95,14 @@
     }
 
     private void initEvent() {
-
-
+        //鍚庨��鐨勪簨浠�
+        viewBinding.topBackLl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                HdlCommonLogic.getInstance().postEventBus(ConstantManage.refresh_message_house, ConstantManage.refresh_message_house);
+                finish();
+            }
+        });
         //鍙戠敓涓�
         viewBinding.messageTabNascentTitleTv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -163,8 +172,11 @@
         viewBinding.allClearIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (TextUtils.isEmpty(mMessageBean.getHomeId().replace(" ", ""))) {
+                    return;
+                }
 //                showLoading();
-                HdlMessageLogic.getInstance().messageAllRead("", new CloudCallBeak<Boolean>() {
+                HdlMessageLogic.getInstance().messageAllRead(mMessageBean.getHomeId(), new CloudCallBeak<Boolean>() {
                     @Override
                     public void onSuccess(Boolean obj) {
 //                        hideLoading();
@@ -365,17 +377,7 @@
         if (eventBus == null) {
             return;
         }
-        //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
-        if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
-            if (eventBus.getType().equals(HomepageTitleTabSwitch.message.toString())) {
-                // 鍙栨秷绮樻�т簨浠�
-                EventBus.getDefault().removeStickyEvent(eventBus);
-                //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�)
-//                initData();
-                HdlLogLogic.print("姝e湪鐐瑰嚮銆愭秷鎭��");
-
-            }
-        } else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
+        if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
             if (eventBus.getType().equals(MessageStateType.untreated)) {
                 updateListData();
             }/* else if (eventBus.getType().equals(MessageStateType.processed)) {
@@ -396,7 +398,6 @@
      * @param isClear                 true琛ㄧず娓呯┖缂撳瓨
      */
     private void loadNextPageMessageList(
-
             boolean isShowLoading,
             int pageNo,
             String deviceType_filter_key,
@@ -406,6 +407,9 @@
             String timeType_filter_key,
             String timeType_filter_value,
             boolean isClear) {
+        if (TextUtils.isEmpty(mMessageBean.getHomeId().replace(" ", ""))) {
+            return;
+        }
         if (isClear) {
             //琛ㄧず浠庣涓�椤靛彲浠ヨ鍙栵紝榛樿娓呯┖鎵�鏈夌紦瀛樻暟鎹�;
             clearCacheData();
@@ -426,7 +430,7 @@
         } else {
             messageStateType = MessageStateType.processed;
         }
-        HdlMessageLogic.getInstance().getPageNoMessageList("", pageNo, messageStateType, deviceType_filter_key, deviceType_filter_value, type_filter_key, type_filter_value, timeType_filter_key, timeType_filter_value, "", new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
+        HdlMessageLogic.getInstance().getPageNoMessageList(mMessageBean.getHomeId(), pageNo, messageStateType, deviceType_filter_key, deviceType_filter_value, type_filter_key, type_filter_value, timeType_filter_key, timeType_filter_value, "", new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
             @Override
             public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
                 if (messageListClass != null) {
@@ -592,7 +596,10 @@
      * 璇诲彇娑堟伅銆愭湭璇绘暟閲�,鏈鐞嗘�绘暟閲忥紝宸插鐞嗘�绘暟閲忋��
      */
     private void getUnreadCount() {
-        HdlMessageLogic.getInstance().getMessageUntreatedCount("", new CloudCallBeak<UnCountBean>() {
+        if (TextUtils.isEmpty(mMessageBean.getHomeId().replace(" ", ""))) {
+            return;
+        }
+        HdlMessageLogic.getInstance().getMessageUntreatedCount(mMessageBean.getHomeId(), new CloudCallBeak<UnCountBean>() {
             @Override
             public void onSuccess(UnCountBean unCountBean) {
 
@@ -702,4 +709,11 @@
         }
         return stringList;
     }
-}
+
+    @Override
+    public void onBackPressed() {
+        HdlCommonLogic.getInstance().postEventBus(ConstantManage.refresh_message_house, ConstantManage.refresh_message_house);
+        super.onBackPressed();
+
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageHouseFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageHouseFragment.java
new file mode 100644
index 0000000..f661011
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageHouseFragment.java
@@ -0,0 +1,409 @@
+package com.hdl.photovoltaic.ui.message;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.os.Build;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+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.FragementMessageHouseBinding;
+import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+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.adapter.MessageHouseAdapter;
+import com.hdl.photovoltaic.ui.bean.MessageBean;
+import com.hdl.photovoltaic.ui.bean.UnCountBean;
+import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
+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 MessageHouseFragment extends CustomBaseFragment {
+    private FragementMessageHouseBinding viewBinding;
+    private MessageHouseAdapter mMessageHouseAdapter;
+
+    private boolean isFirstLoading = true;
+
+    private final List<MessageBean> mList = new ArrayList<>();
+
+    @Override
+    public Object getContentView() {
+        viewBinding = FragementMessageHouseBinding.inflate(getLayoutInflater());
+        return viewBinding.getRoot();
+    }
+
+    @Override
+    public void onBindView(Bundle savedInstanceState) {
+        //鍒濆鍖栫晫闈�
+        initView();
+        //鍒濆鍖栫洃鍚櫒
+        initEvent();
+        //鍒濆鍖栨暟鎹�
+        initData(true);
+
+    }
+
+    /**
+     * 鑾峰彇璐﹀彿涓嬪叏閮ㄧ數绔欐秷鎭�
+     *
+     * @param homeName      鐢电珯鍚嶇О锛堟悳绱㈢敤鐨勶級,濡傛灉鏄┖瀛楃涓查粯璁よ鍙栧叏閮�
+     * @param isShowLoading 鏄惁闇�瑕佸姞杞界獥锛坱rue=闇�瑕侊紝false=涓嶉渶瑕侊級
+     */
+    private void getMessageHouseList(String homeName, boolean isShowLoading) {
+        if (isShowLoading) {
+            showLoading();
+        }
+        HdlMessageLogic.getInstance().getMessageHouseList(homeName, new CloudCallBeak<List<MessageBean>>() {
+            @Override
+            public void onSuccess(List<MessageBean> list) {
+                isFirstLoading = false;
+                if (isShowLoading) {
+                    hideLoading();
+                }
+                mList.clear();
+                if (list != null && !list.isEmpty()) {
+                    mList.addAll(list);
+                }
+                updateRecyclerViewList();
+
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+
+                if (isShowLoading) {
+                    hideLoading();
+                }
+            }
+        });
+    }
+
+    /**
+     * 鑾峰彇璐﹀彿涓嬪叏閮ㄧ數绔欐秷鎭�
+     *
+     * @param homeId        娑堟伅id(涓嶄紶宸茶鎵�鏈夌數绔欑殑锛屼紶鍊煎凡璇绘寚瀹氱數绔欑殑)
+     * @param isShowLoading 鏄惁闇�瑕佸姞杞界獥锛坱rue=闇�瑕侊紝false=涓嶉渶瑕侊級
+     */
+    private void messageAllRead(String homeId, boolean isShowLoading) {
+        if (isShowLoading) {
+            showLoading();
+        }
+        HdlMessageLogic.getInstance().messageAllRead(homeId, new CloudCallBeak<Boolean>() {
+            @Override
+            public void onSuccess(Boolean obj) {
+                if (isShowLoading) {
+                    hideLoading();
+                }
+                if (!mList.isEmpty()) {
+                    for (int i = 0; i < mList.size(); i++) {
+                        MessageBean messageBean = mList.get(i);
+                        messageBean.setUnreadCount(0L);
+                    }
+                    updateRecyclerViewList();
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (isShowLoading) {
+                    hideLoading();
+                }
+            }
+        });
+    }
+
+    /**
+     * 璇诲彇娑堟伅銆愭湭璇绘暟閲�,鏈鐞嗘�绘暟閲忥紝宸插鐞嗘�绘暟閲忋��
+     */
+    private void getUnreadCount() {
+        HdlMessageLogic.getInstance().getMessageUntreatedCount("", new CloudCallBeak<UnCountBean>() {
+            @Override
+            public void onSuccess(UnCountBean unCountBean) {
+
+                HdlThreadLogic.runMainThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (unCountBean == null) {
+                            return;
+                        }
+                        refreshUnreadCount(unCountBean.getUnreadCount());
+                    }
+
+                });
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                HdlThreadLogic.runMainThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
+                        if (textView != null) {
+                            textView.setVisibility(View.GONE);
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    private void initData(boolean isShowLoading) {
+        this.getMessageHouseList("", isShowLoading);
+        this.getUnreadCount();
+    }
+
+    private void initEvent() {
+        //鎼滅储
+        viewBinding.powerStationSearchEt.addTextChangedListener(powerStationSearchWatcher);
+        //娓呴櫎鎼滅储鏂囨
+        viewBinding.powerStationClearIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                viewBinding.powerStationSearchEt.setText("");
+                viewBinding.powerStationClearIv.setVisibility(View.GONE);
+                getMessageHouseList("", false);
+
+            }
+        });
+        //鍏ㄩ儴宸茶
+        viewBinding.powerStationReadIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                messageAllRead("", true);
+                refreshUnreadCount(0);
+            }
+        });
+
+        if (mMessageHouseAdapter != null) {
+            mMessageHouseAdapter.setOnclickListener(new MessageHouseAdapter.OnClickListener() {
+                @Override
+                public void onClick(int position, MessageBean messageBean) {
+                    Intent intent = new Intent();
+                    intent.putExtra("messageBean", new Gson().toJson(messageBean));
+                    intent.setClass(_mActivity, MessageActivity.class);
+                    startActivity(intent);
+                }
+            });
+
+        }
+    }
+
+    /**
+     * 閲嶆柊鏇存柊鍒楄〃鏁版嵁
+     */
+    private void updateRecyclerViewList() {
+        if (mMessageHouseAdapter == null) {
+            return;
+        }
+        mMessageHouseAdapter.setList(mList);
+        nullDataUpdateUi();
+    }
+
+    /**
+     * 鍒锋柊銆愭秷鎭ā鍧椼�戜笅瑙掓爣鏁板��
+     *
+     * @param unreadCount 鏈淇℃伅鏁伴噺鎬绘暟
+     */
+    private void refreshUnreadCount(int unreadCount) {
+        HdlThreadLogic.runMainThread(new Runnable() {
+            @SuppressLint("SetTextI18n")
+            @Override
+            public void run() {
+                TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
+                if (textView != null) {
+                    if (unreadCount == 0) {
+                        textView.setVisibility(View.GONE);
+                    } else {
+                        textView.setVisibility(View.VISIBLE);
+                        if (unreadCount > 99) {
+                            textView.setText("99+");
+                        } else {
+                            textView.setText(unreadCount + "");
+                        }
+                    }
+                }
+            }
+        });
+    }
+
+    /**
+     * 娌℃湁娑堟伅鍒楄〃鐨勬牱寮�
+     */
+    private void nullDataUpdateUi() {
+        HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.deviceNullDataIc.getRoot(), viewBinding.deviceNullDataIc.nullDataGifAnimationIv, viewBinding.deviceNullDataIc.nullDataTv, getString(R.string.message_alarm_data_null), mList.size() > 0);
+    }
+
+    private void initView() {
+        mMessageHouseAdapter = new MessageHouseAdapter(_mActivity);
+        viewBinding.houseListRcv.setLayoutManager(new LinearLayoutManager(_mActivity));
+        viewBinding.houseListRcv.setAdapter(mMessageHouseAdapter);
+        this.pullToRefresh();
+        //鍦ㄧ晫闈腑浣跨敤
+        KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() {
+            @Override
+            public void onKeyboardShow(int h) {
+                //Toast.makeText(MainActivity.this,"閿洏寮瑰嚭",Toast.LENGTH_SHORT).show();
+//                viewBinding.messageSearchEt.requestFocus();
+
+            }
+
+            @Override
+
+            public void onKeyboardHide(int h) {
+                viewBinding.powerStationSearchEt.clearFocus();
+            }
+
+        });
+    }
+
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.houseListRbl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @SuppressLint("StaticFieldLeak")
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                new AsyncTask<Void, Void, Void>() {
+
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(1000);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        // 鎵ц浠诲姟锛堝鏇存柊UI銆佽烦杞瓑锛�
+                        viewBinding.houseListRbl.endRefreshing();
+                        initData(false);
+
+                    }
+                }.execute();
+
+
+            }
+
+
+            @SuppressLint("StaticFieldLeak")
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+                new AsyncTask<Void, Void, Void>() {
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(10);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        viewBinding.houseListRbl.endLoadingMore();
+                        //鍔犺浇鏈�鏂版暟鎹畬鎴�
+                    }
+                }.execute();
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.houseListRbl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
+    public void onEventMessage(BaseEventBus eventBus) {
+        super.onEventMessage(eventBus);
+        if (eventBus == null) {
+            return;
+        }
+        //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
+        if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
+            if (eventBus.getType().equals(HomepageTitleTabSwitch.message.toString())) {
+                // 鍙栨秷绮樻�т簨浠�
+                EventBus.getDefault().removeStickyEvent(eventBus);
+                HdlLogLogic.print("姝e湪鐐瑰嚮銆愭秷鎭��");
+                //绗簩娆¤繘鏉ヤ笉鏄剧ず鍔犺浇妗�
+                if (!isFirstLoading) {
+                    initData(false);
+                }
+            }
+        } else if (eventBus.getTopic().equals(ConstantManage.refresh_message_house)) {
+            // 鍙栨秷绮樻�т簨浠�
+            EventBus.getDefault().removeStickyEvent(eventBus);
+            //绗簩娆¤繘鏉ヤ笉鏄剧ず鍔犺浇妗�
+            if (!isFirstLoading) {
+                initData(false);
+            }
+
+        }
+    }
+
+    /**
+     *
+     */
+    private final TextWatcher powerStationSearchWatcher = 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) {
+            //鎼滅储鍏抽敭瀛�
+            String currSearchText = s.toString().replace(" ", "");
+            if (TextUtils.isEmpty(currSearchText)) {
+                viewBinding.powerStationClearIv.setVisibility(View.GONE);
+//                HdlThreadLogic.toast(_mActivity, R.string.search_content_null);
+                return;
+            }
+            viewBinding.powerStationClearIv.setVisibility(View.VISIBLE);
+            viewBinding.powerStationSearchEt.clearFocus();
+            getMessageHouseList(currSearchText, false);
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+
+        }
+    };
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        viewBinding.powerStationSearchEt.removeTextChangedListener(powerStationSearchWatcher);
+    }
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
index 5801f16..1e37e34 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -220,9 +220,18 @@
         });
 
         //鐢电珯娣诲姞
+        //鐐瑰嚮杩涘叆鏂伴厤缃叆缃戠晫闈�
         viewBinding.addIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
+                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
+            }
+        });
+        //闀挎寜杩涘叆鏃ч厤缃叆缃戠晫闈�
+        viewBinding.addIv.setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View v) {
                 UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
                 HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
 //                AddPowerStationDialog addPowerStationDialog = new AddPowerStationDialog(_mActivity);
@@ -231,8 +240,8 @@
 //                addPowerStationDialog.setItemOnclickListener(new PowerStationDialogAdapter.OnclickListener() {
 //                    @Override
 //                    public void onClick(int position, String str) {
+////                        debugging_str = str;
 //                        addPowerStationDialog.dismiss();
-//
 ////                        UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
 ////                        if (_mActivity.getString(R.string.simple_debugging).equals(str)) {
 ////                            HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
@@ -249,16 +258,12 @@
 //                    }
 //                });
 
-            }
-        });
-        viewBinding.addIv.setOnLongClickListener(new View.OnLongClickListener() {
-            @Override
-            public boolean onLongClick(View v) {
-                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
-                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
                 return true;
             }
         });
+
+
+
         //鐢电珯鎼滅储
         viewBinding.powerStationSearchClickCl.setOnClickListener(new View.OnClickListener() {
             @Override
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
index 0091ead..c882622 100644
--- a/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
@@ -157,6 +157,27 @@
         return "";
     }
 
+    /**
+     * 鏃堕棿鎴宠浆鏃ユ湡(鏍煎紡:MM-dd)
+     *
+     * @param timestamp 鏃堕棿鎴�
+     *                  卢     * @return -
+     */
+    public static String getDataFromTimestamp(long timestamp) {
+        try {
+            String pattern = "MM-dd";
+            if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.en)) {
+                pattern = "dd-MM";
+            }
+            SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, getLocale());
+            Date date = new Date(timestamp);
+            return dateFormat.format(date);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
 
     /**
      * 鏃堕棿鎴宠浆鏃堕棿(鏍煎紡:yyyy-MM-dd HH:mm:ss)
diff --git a/app/src/main/res/drawable/red_message_house_font.xml b/app/src/main/res/drawable/red_message_house_font.xml
new file mode 100644
index 0000000..d27ae53
--- /dev/null
+++ b/app/src/main/res/drawable/red_message_house_font.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#FFF55252" />
+    <corners android:radius="10.5dp" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_message.xml b/app/src/main/res/layout/activity_message.xml
new file mode 100644
index 0000000..d94b3e8
--- /dev/null
+++ b/app/src/main/res/layout/activity_message.xml
@@ -0,0 +1,244 @@
+<?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"
+android:id="@+id/message_parent"
+android:layout_width="match_parent"
+android:layout_height="match_parent"
+android:background="@color/text_FF000000">
+<!--澶撮儴鏍囩-->
+<RelativeLayout
+    android:id="@+id/message_rl"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/dp_44"
+    android:layout_marginStart="@dimen/dp_16"
+    android:layout_marginTop="@dimen/dp_38"
+    android:layout_marginEnd="@dimen/dp_16"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent">
+
+    <TextView
+        android:id="@+id/message_tab_nascent_title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerVertical="true"
+        android:text="@string/message_nascent"
+        android:textColor="@color/text_FFACACAC"
+        android:textSize="@dimen/text_18" />
+
+    <TextView
+        android:id="@+id/message_tab_recover_title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerVertical="true"
+        android:layout_marginStart="20dp"
+        android:layout_marginEnd="36dp"
+        android:layout_toEndOf="@+id/message_tab_nascent_title_tv"
+        android:text="@string/alarm_record"
+        android:textColor="@color/text_FF5B5B5B"
+        android:textSize="@dimen/text_14" />
+
+    <ImageView
+        android:id="@+id/all_clear_iv"
+        android:layout_width="@dimen/dp_33"
+        android:layout_height="@dimen/dp_33"
+        android:layout_alignParentEnd="true"
+        android:layout_centerVertical="true"
+        android:layout_marginEnd="@dimen/dp_5"
+        android:src="@drawable/clear_all" />
+
+
+</RelativeLayout>
+
+<LinearLayout
+    android:id="@+id/message_cl"
+    android:layout_width="match_parent"
+    android:layout_height="77dp"
+    android:layout_marginTop="@dimen/dp_10"
+    android:orientation="vertical"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/message_rl">
+    <!--鎼滅储-->
+    <RelativeLayout
+        android:id="@+id/message_search_cl"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_35"
+        android:layout_marginStart="@dimen/dp_13"
+        android:layout_marginEnd="@dimen/dp_16"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <RelativeLayout
+            android:id="@+id/message_search_click_cl"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_alignParentEnd="true"
+            android:layout_marginEnd="@dimen/dp_17"
+            android:background="@drawable/search_bj_ff1c1c1e">
+
+            <ImageView
+                android:id="@+id/power_station_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" />
+
+            <TextView
+                android:id="@+id/power_station_search_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:layout_marginStart="@dimen/dp_11"
+                android:layout_toEndOf="@+id/power_station_search_iv"
+                android:text="@string/enter_alarm_name"
+                android:textColor="@color/text_FF5B5B5B"
+                android:textSize="@dimen/text_14" />
+        </RelativeLayout>
+
+
+    </RelativeLayout>
+    <!--鏉′欢绛涢��-->
+    <LinearLayout
+        android:id="@+id/message_tab_ll"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_22"
+        android:layout_marginStart="@dimen/dp_16"
+        android:layout_marginTop="@dimen/dp_20"
+        android:layout_marginEnd="@dimen/dp_16"
+        android:orientation="horizontal">
+        <!--鍏ㄩ儴璁惧-->
+        <LinearLayout
+            android:id="@+id/message_tab_all_device_cl"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/all_device_title_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="@dimen/dp_20"
+                android:text="@string/alarm_all_device"
+                android:textColor="@color/text_FFACACAC"
+                android:textSize="@dimen/text_14" />
+
+            <View
+                android:layout_width="@dimen/dp_5"
+                android:layout_height="match_parent" />
+
+            <ImageView
+                android:id="@+id/all_device_title_iv"
+                android:layout_width="@dimen/dp_10"
+                android:layout_height="@dimen/dp_10"
+                android:layout_marginStart="@dimen/dp_0"
+                android:background="@drawable/down" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+        <!--鍏ㄩ儴绛夌骇-->
+        <LinearLayout
+            android:id="@+id/message_tab_all_grade_cl"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/all_grade_title_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="@dimen/dp_20"
+                android:text="@string/alarm_all_grade"
+                android:textColor="@color/text_FFACACAC"
+                android:textSize="@dimen/text_14" />
+
+            <View
+                android:layout_width="5dp"
+                android:layout_height="match_parent" />
+
+            <ImageView
+                android:id="@+id/all_grade_title_iv"
+                android:layout_width="@dimen/dp_10"
+                android:layout_height="@dimen/dp_10"
+                android:layout_marginStart="@dimen/dp_0"
+                android:background="@drawable/down" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+        <!--鍏ㄩ儴鏃堕棿-->
+        <LinearLayout
+            android:id="@+id/message_tab_all_time_cl"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center_vertical|end"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/all_time_title_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="@dimen/dp_20"
+                android:text="@string/alarm_all_time"
+                android:textColor="@color/text_FFACACAC"
+                android:textSize="@dimen/text_14" />
+
+            <View
+                android:layout_width="@dimen/dp_5"
+                android:layout_height="match_parent" />
+
+            <ImageView
+                android:id="@+id/all_time_title_iv"
+                android:layout_width="@dimen/dp_10"
+                android:layout_height="@dimen/dp_10"
+                android:background="@drawable/down" />
+        </LinearLayout>
+    </LinearLayout>
+
+</LinearLayout>
+
+
+<com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
+    android:id="@+id/message_srl"
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:layout_marginTop="@dimen/dp_10"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/message_cl">
+
+    <!-- android:clipToPadding="false"
+        android:paddingBottom="@dimen/dp_16"
+        搴曢儴闂磋窛
+        -->
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/message_rcv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:clipToPadding="false"
+        android:paddingBottom="@dimen/dp_10"
+        />
+</com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
+
+<!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
+<include
+    android:id="@+id/null_data_ic"
+    layout="@layout/null_data_view"
+    android:layout_width="match_parent"
+    android:layout_height="224dp"
+    android:visibility="gone"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/message_cl" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragement_message_house.xml b/app/src/main/res/layout/fragement_message_house.xml
new file mode 100644
index 0000000..4aaca0a
--- /dev/null
+++ b/app/src/main/res/layout/fragement_message_house.xml
@@ -0,0 +1,106 @@
+<?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"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/text_FF000000">
+    <!--鎼滅储-->
+    <RelativeLayout
+        android:id="@+id/power_station_search_cl"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_44"
+        android:layout_marginTop="@dimen/dp_48"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginStart="@dimen/dp_16"
+            android:layout_marginTop="4.5dp"
+            android:layout_marginEnd="@dimen/dp_16"
+            android:layout_marginBottom="4.5dp"
+            android:layout_toStartOf="@+id/power_station_read_iv"
+            android:background="@drawable/search_bj_ff1c1c1e">
+
+            <ImageView
+                android:id="@+id/power_station_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/power_station_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/power_station_search_iv"
+                android:background="@null"
+                android:gravity="start|center_vertical"
+                android:hint="@string/search_station"
+                android:textColor="@color/text_FFACACAC"
+                android:textColorHint="@color/text_FF5B5B5B"
+                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"
+                android:visibility="gone" />
+        </RelativeLayout>
+
+        <ImageView
+            android:id="@+id/power_station_read_iv"
+            android:layout_width="@dimen/dp_33"
+            android:layout_height="@dimen/dp_33"
+            android:layout_alignParentEnd="true"
+            android:layout_centerVertical="true"
+            android:layout_marginEnd="@dimen/dp_21"
+            android:src="@drawable/clear_all" />
+
+
+    </RelativeLayout>
+    <!--浣忓畢鍒楄〃娑堟伅-->
+
+    <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
+        android:id="@+id/house_list_rbl"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_marginTop="10dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl">
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/house_list_rcv"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:clipToPadding="false"
+            android:paddingTop="@dimen/dp_10"
+            />
+
+    </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
+    <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
+    <include
+        android:id="@+id/device_null_data_ic"
+        layout="@layout/null_data_view"
+        android:layout_width="match_parent"
+        android:layout_height="224dp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl" />
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml
index e181a31..548fff1 100644
--- a/app/src/main/res/layout/fragment_message.xml
+++ b/app/src/main/res/layout/fragment_message.xml
@@ -10,12 +10,29 @@
         android:id="@+id/message_rl"
         android:layout_width="match_parent"
         android:layout_height="@dimen/dp_44"
-        android:layout_marginStart="@dimen/dp_16"
         android:layout_marginTop="@dimen/dp_38"
         android:layout_marginEnd="@dimen/dp_16"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent">
+
+        <!--1.杩斿洖鎸夐挳 澧炲ぇ鐐瑰嚮鍖哄煙-->
+        <LinearLayout
+            android:id="@+id/top_back_ll"
+            android:layout_width="@dimen/dp_56"
+            android:layout_height="match_parent"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:id="@+id/top_left_iv"
+                android:layout_width="@dimen/dp_30"
+                android:layout_height="@dimen/dp_30"
+                android:layout_gravity="center"
+                android:layout_marginStart="@dimen/dp_10"
+                android:scaleType="centerInside"
+                android:src="@drawable/back" />
+        </LinearLayout>
 
         <TextView
             android:id="@+id/message_tab_nascent_title_tv"
@@ -24,7 +41,9 @@
             android:layout_centerVertical="true"
             android:text="@string/message_nascent"
             android:textColor="@color/text_FFACACAC"
-            android:textSize="@dimen/text_18" />
+            android:textSize="@dimen/text_18"
+            android:layout_toEndOf="@+id/top_back_ll"
+            />
 
         <TextView
             android:id="@+id/message_tab_recover_title_tv"
@@ -225,8 +244,7 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:clipToPadding="false"
-            android:paddingBottom="@dimen/dp_10"
-            />
+            android:paddingBottom="@dimen/dp_10" />
     </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
diff --git a/app/src/main/res/layout/item_message_house.xml b/app/src/main/res/layout/item_message_house.xml
new file mode 100644
index 0000000..29d0a0a
--- /dev/null
+++ b/app/src/main/res/layout/item_message_house.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="76dp">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="66dp"
+        android:layout_marginStart="@dimen/dp_16"
+        android:layout_marginEnd="@dimen/dp_16"
+        android:background="@drawable/bj_ff1c1c1e">
+
+        <ImageView
+            android:id="@+id/home_image_iv"
+            android:layout_width="44dp"
+            android:layout_height="42dp"
+            android:layout_marginStart="@dimen/dp_16"
+            android:layout_marginTop="@dimen/dp_12"
+            android:scaleType="centerCrop"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <LinearLayout
+            android:id="@+id/home_name_ll"
+            android:layout_width="0dp"
+            android:layout_height="@dimen/dp_20"
+            android:layout_marginStart="@dimen/dp_24"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/home_image_iv"
+            app:layout_constraintTop_toTopOf="@+id/home_image_iv">
+
+            <TextView
+                android:id="@+id/home_name_tv"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:ellipsize="end"
+                android:gravity="center_vertical|start"
+                android:singleLine="true"
+                android:text="@string/power_station"
+                android:textColor="@color/text_FFACACAC"
+                android:textSize="@dimen/text_14" />
+
+            <TextView
+                android:id="@+id/home_last_date_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:ellipsize="end"
+                android:gravity="center_vertical|end"
+                android:paddingStart="4dp"
+                android:paddingEnd="@dimen/dp_16"
+                android:singleLine="true"
+                android:text="@string/power_station"
+                android:textColor="@color/text_FFACACAC"
+                android:textSize="@dimen/text_12" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="21dp"
+            android:layout_marginStart="@dimen/dp_11"
+            android:layout_marginTop="4.5dp"
+            android:gravity="center_vertical"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/home_image_iv"
+            app:layout_constraintTop_toBottomOf="@+id/home_name_ll">
+
+            <TextView
+                android:id="@+id/item_estate_tv"
+                android:layout_width="7dp"
+                android:layout_height="7dp"
+                android:background="@drawable/device_state_ffb9b9b9" />
+
+            <TextView
+                android:id="@+id/item_content_tv"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:ellipsize="end"
+                android:gravity="center_vertical|start"
+                android:paddingStart="6dp"
+                android:paddingEnd="5dp"
+                android:singleLine="true"
+                android:textColor="@color/text_FFACACAC"
+                android:textSize="@dimen/text_12" />
+            <!--鏈鏍囩-->
+            <TextView
+                android:id="@+id/item_unread_message_tv"
+                android:layout_width="21dp"
+                android:layout_height="21dp"
+                android:gravity="center"
+                android:layout_marginEnd="@dimen/dp_16"
+                android:background="@drawable/red_message_house_font"
+                android:textColor="@color/text_FFFFFFFF"
+                android:textSize="12sp" />
+        </LinearLayout>
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</LinearLayout>
\ No newline at end of file

--
Gitblit v1.8.0