app/src/main/AndroidManifest.xml
@@ -68,6 +68,12 @@ android:requestLegacyExternalStorage="true" 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" /> app/src/main/java/com/hdl/photovoltaic/config/AppConfigManage.java
@@ -10,7 +10,7 @@ public class AppConfigManage { /*********是否正式服务器*********/ private static boolean isOnlineServer =true;// UserConfigManage.getInstance().isOnlineServer(); private static boolean isOnlineServer =false;// UserConfigManage.getInstance().isOnlineServer(); /*********正式环境*********/ private static final String APP_KEY_ONLINE = "CSZEMDJL"; private static final String APP_SECRET_ONLINE = "CSZEMDKBCSZEMDKR"; app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
@@ -21,8 +21,8 @@ * 消息警告解决或者未解决事件 */ 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"; 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"; //获取消息详情(匹配维修方案) 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 { //总条数 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(); } 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> { app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageHouseAdapter.java
New file @@ -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 ""; } } } app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java
@@ -15,10 +15,30 @@ private String status;//UNTREATED:未处理,PROCESSED:已处理 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; } 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; } }); app/src/main/java/com/hdl/photovoltaic/ui/message/MessageActivity.java
File was renamed from app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.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表示告警设备被选中,则false表示报警记录被选中 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,currentTotal这个值) // initData(); HdlLogLogic.print("正在点击【消息】"); } } 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(); } } app/src/main/java/com/hdl/photovoltaic/ui/message/MessageHouseFragment.java
New file @@ -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 是否需要加载窗(true=需要,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 是否需要加载窗(true=需要,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("正在点击【消息】"); //第二次进来不显示加载框 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); } } 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 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) app/src/main/res/drawable/red_message_house_font.xml
New file @@ -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> app/src/main/res/layout/activity_message.xml
New file @@ -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> app/src/main/res/layout/fragement_message_house.xml
New file @@ -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> 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> <!--没有数据显示样式--> app/src/main/res/layout/item_message_house.xml
New file @@ -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>