app/src/main/AndroidManifest.xml
@@ -77,6 +77,9 @@ android:supportsRtl="true" android:theme="@style/Theme.PhotovoltaicDebug"> <activity android:name=".ui.powerstation.HouseListEditActivity" android:exported="false" /> <activity android:name=".ui.newC.MessageCenterList" android:exported="false" /> <activity app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -52,8 +52,6 @@ @Override public void onBindView(Bundle savedInstanceState) { //C端启动App自动打开小程序电站详情界面 startAppAutomaticallyOpenUni(); //注册监听 @@ -71,17 +69,17 @@ List<HouseIdBean> HouseIdList = HdlResidenceLogic.getInstance().getHouseIdList(); if (HouseIdList.size() == 0) { // String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C; // HdlUniLogic.getInstance().openUniMP(path, null); String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C + "?homeId=" + "" + "&homeName=" + "" + "&powerStationStatus=" + 1; String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C; HdlUniLogic.getInstance().openUniMP(path, null); } else { HouseIdBean houseIdBean = HouseIdList.get(0); int select_home = 0; for (int i = 0; i < HouseIdList.size(); i++) { if (HouseIdList.get(i).getHomeId().equals(UserConfigManage.getInstance().getHomeId())) { select_home = i; break; } } HouseIdBean houseIdBean = HouseIdList.get(select_home); String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -74,26 +74,8 @@ holder.item_parent_rl.setTag(position); setTextViewStyle(holder.stateTv, houseIdBean.getPowerStationStatus()); GlideUtils.getRoundedCornersImage(mContext, houseIdBean.getPowerStationImage(), holder.homeIconIv, new RoundedCorners(4)); if (houseIdBean.isEdit()) { holder.item_parent_swipeLayout.postDelayed(new Runnable() { @Override public void run() { holder.item_parent_swipeLayout.open(); // holder.item_parent_swipeLayout.open(false, false); } }, 50); } else { holder.item_parent_swipeLayout.postDelayed(new Runnable() { @Override public void run() { holder.item_parent_swipeLayout.close(); // holder.item_parent_swipeLayout.close(false, false); } }, 50); } HdlLogLogic.print("电站名称--->" + houseIdBean.getHomeName() + "--->" + houseIdBean.isEdit() + "--->" + holder.item_parent_swipeLayout.toString()); HdlLogLogic.print("电站名称--->" + houseIdBean.getHomeName() + "--->" + houseIdBean.isMove() + "--->" + holder.item_parent_swipeLayout.toString()); holder.item_parent_rl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java
@@ -18,14 +18,37 @@ private int powerStationStatus;//电站状态(电站状态 1:正常(运行),2:离线,3:连接中,4:故障) private String localSecret;//本地通讯秘钥 private boolean isEdit = false;//是否移除电站位置(true表示移除) private boolean isMove = false;//表示是否显示移动组件(true显示) public boolean isEdit() { return isEdit; private boolean isDelIcon = false;//表示是否显示删除组件(true显示) private boolean state_select = false;//表示是否显示选中组件(true显示) public boolean isState_select() { return state_select; } public void setEdit(boolean edit) { isEdit = edit; public void setState_select(boolean state_select) { this.state_select = state_select; } public boolean isDelIcon() { return isDelIcon; } public void setDelIcon(boolean delIcon) { isDelIcon = delIcon; } public boolean isMove() { return isMove; } public void setMove(boolean edit) { isMove = edit; } public String getHomeId() { app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java
@@ -27,6 +27,8 @@ import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.utils.GlideUtils; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.widget.ConfirmationInputDialog; @@ -286,10 +288,18 @@ * 返回给上一级界面数据 */ private void backPressedData() { Intent intent = new Intent(); intent.putExtra("memberHeadIcon", mMemberHeadIconUrl); intent.putExtra("memberName", UserConfigManage.getInstance().getUserName()); setResult(10, intent); if (UserConfigManage.getInstance().isBAccount()) { Intent intent = new Intent(); intent.putExtra("memberHeadIcon", mMemberHeadIconUrl); intent.putExtra("memberName", UserConfigManage.getInstance().getUserName()); setResult(10, intent); } else { //通知给小程序更新图像或者用户名 HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_USERINFO); HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean); } } app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
@@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; @@ -26,9 +27,11 @@ import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlMessageLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.ui.bean.MessageBean; import com.hdl.photovoltaic.ui.message.MessageInfoActivity; import com.hdl.photovoltaic.ui.newC.adapter.MessageCenterListAdapter; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.widget.TypeTitleListDialog; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; @@ -96,6 +99,12 @@ @Override public void onClick(View v) { clearCacheData(); HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_USERINFO); JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); uniCallBackBaseBean.setData(jsonObject); HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER, uniCallBackBaseBean); finish(); } }); app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
@@ -1,23 +1,35 @@ package com.hdl.photovoltaic.ui.newC; import android.content.Intent; import android.os.Bundle; import android.view.View; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.ActivityPowerStationsListBinding; import com.hdl.photovoltaic.enums.ShowErrorMode; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.ui.CPowerStationActivity; import com.hdl.photovoltaic.ui.StartActivity; import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import com.hdl.photovoltaic.ui.newC.adapter.HouseListAdapter; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.AppManagerUtils; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; import java.util.ArrayList; import java.util.List; @@ -55,6 +67,7 @@ private void initData() { this.houseListBeanIDList = new ArrayList<>(); this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList()); setAllItemEdit(false); } private void initEvent() { @@ -99,26 +112,48 @@ }); if (houseListAdapter != null) { //电站移动位置按钮 houseListAdapter.setNoOnclickListener(new HouseListAdapter.OnClickListener() { houseListAdapter.setMoveOnclickListener(new HouseListAdapter.OnMoveClickListener() { @Override public void onMoveClick(int position, HouseIdBean houseIdBean) { // HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() { // @Override // public void onSuccess(Boolean obj) { //移动电站位置 HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId()); initData();//初始化缓存数据 houseListAdapter.setList(houseListBeanIDList);//重新刷新列表 nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空 // } // // @Override // public void onFailure(HDLException e) { // HdlThreadLogic.toast(_mActivity, e); // } // }); String frontHomeId = ""; if (position > 0) { frontHomeId = houseListBeanIDList.get(position - 1).getHomeId(); } HdlResidenceLogic.getInstance().moveResidence(houseIdBean.getHomeId(), frontHomeId, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { //移动电站位置 HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId()); initData();//初始化缓存数据 houseListAdapter.setList(houseListBeanIDList);//重新刷新列表 nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空 } @Override public void onFailure(HDLException e) { HdlThreadLogic.toast(_mActivity, e); } }); } }); houseListAdapter.setOnItemClickListener(new HouseListAdapter.OnItemClickListener() { @Override public void onItemClick(int position, HouseIdBean houseBean) { for (int i = 0; i < houseListBeanIDList.size(); i++) { HouseIdBean houseIdBean = houseListBeanIDList.get(i); houseIdBean.setState_select(false); } houseListBeanIDList.get(position).setState_select(true); houseListAdapter.notifyDataSetChanged(); if (UserConfigManage.getInstance().getHomeId().equals(houseBean.getHomeId())) { //同一个不执行弹窗 return; } houseSelectionDialog(houseBean); } }); } } @@ -195,7 +230,11 @@ */ private void setAllItemEdit(boolean edit) { for (int i = 0; i < houseListBeanIDList.size(); i++) { houseListBeanIDList.get(i).setEdit(edit); houseListBeanIDList.get(i).setMove(edit); houseListBeanIDList.get(i).setDelIcon(false); if (UserConfigManage.getInstance().getHomeId().equals(houseListBeanIDList.get(i).getHomeId())) { this.houseListBeanIDList.get(i).setState_select(!edit); } } } @@ -205,4 +244,48 @@ private void nullDataUpdateUi(List<HouseIdBean> list) { HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.my_power_station_data_null), list != null && list.size() > 0); } /** * 二次确认提示框 * * @param houseIdBean 选中数据 */ private void houseSelectionDialog(HouseIdBean houseIdBean) { ConfirmationCancelDialog dialog = new ConfirmationCancelDialog(this); dialog.setTitle(getString(R.string.loading_title_tip)); dialog.setContent(getString(R.string.switch_power_station).replace("%s", "\"" + houseIdBean.getHomeName() + "\"")); dialog.show(); dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { @Override public void Confirm() { UserConfigManage.getInstance().setHomeId(houseIdBean.getHomeId()); UserConfigManage.getInstance().Save(); dialog.dismiss(); JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("homeId", houseIdBean.getHomeId()); jsonObject.addProperty("homeName", houseIdBean.getHomeName()); jsonObject.addProperty("powerStationStatus", houseIdBean.getPowerStationStatus()); HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS); uniCallBackBaseBean.setData(jsonObject); HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean); finish(); // //todo 逻辑: 这里可以指定关闭小程序详情,然后再重新打开详情界面; // String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C // + "?homeId=" + houseIdBean.getHomeId() // + "&homeName=" + houseIdBean.getHomeName() // + "&powerStationStatus=" + houseIdBean.getPowerStationStatus(); // HdlUniLogic.getInstance().openUniMP(path, null); } }); dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { @Override public void Cancel() { houseListAdapter.notifyDataSetChanged(); dialog.dismiss(); } }); } } app/src/main/java/com/hdl/photovoltaic/ui/newC/adapter/HouseListAdapter.java
@@ -8,9 +8,11 @@ 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.config.UserConfigManage; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import java.util.ArrayList; @@ -24,7 +26,10 @@ private Context mContext; private List<HouseIdBean> mList; public OnClickListener mOnClickListener; public OnMoveClickListener mOnMoveClickListener; public OnDelClickListener mOnDelClickListener; public OnItemClickListener mOnItemClickListener; public HouseListAdapter(Context context) { this.mContext = context; @@ -43,18 +48,68 @@ holder.homeNameTv.setText(houseIdBean.getHomeName().trim()); holder.itemView.setTag(position); if (houseIdBean.isEdit()) { if (houseIdBean.isDelIcon()) { holder.houseDelIv.setVisibility(View.VISIBLE); } else { holder.houseDelIv.setVisibility(View.GONE); } if (houseIdBean.isMove()) { holder.homeMoveIv.setVisibility(View.VISIBLE); } else { holder.homeMoveIv.setVisibility(View.GONE); } if (!houseIdBean.isMove()) { holder.houseSelectIv.setVisibility(View.VISIBLE); holder.houseSelectIv.setBackground(null); holder.homeNameTv.setTextColor(mContext.getColor(R.color.text_90000000)); if (houseIdBean.isState_select()) { holder.homeNameTv.setTextColor(mContext.getColor(R.color.text_38C494)); holder.houseSelectIv.setBackground(AppCompatResources.getDrawable(mContext, R.drawable.select)); } } else { holder.houseSelectIv.setVisibility(View.GONE); } //删除电站位置 holder.houseDelIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { if (mOnDelClickListener != null) { mOnDelClickListener.onDelClick((int) holder.itemView.getTag(), houseIdBean); } } catch (Exception ignored) { } } }); //移动电站位置 holder.homeMoveIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { if (mOnClickListener != null) { mOnClickListener.onMoveClick((int) holder.itemView.getTag(), houseIdBean); if (mOnMoveClickListener != null) { mOnMoveClickListener.onMoveClick((int) holder.itemView.getTag(), houseIdBean); } } catch (Exception ignored) { } } }); holder.itemView.setTag(position);//标记位置 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { if (holder.houseSelectIv.getVisibility() == View.GONE) { //选中图标组件隐藏的时候点击无效 return; } if (mOnItemClickListener != null) { mOnItemClickListener.onItemClick((int) holder.itemView.getTag(), houseIdBean); } } catch (Exception ignored) { } @@ -81,26 +136,48 @@ } public void setNoOnclickListener(OnClickListener onClickListener) { this.mOnClickListener = onClickListener; public void setMoveOnclickListener(OnMoveClickListener onMoveClickListener) { this.mOnMoveClickListener = onMoveClickListener; } public void setDelOnclickListener(OnDelClickListener onDelClickListener) { this.mOnDelClickListener = onDelClickListener; } public void setOnItemClickListener(OnItemClickListener onItemClickListener) { this.mOnItemClickListener = onItemClickListener; } static class MyViewHolder extends RecyclerView.ViewHolder { public TextView homeNameTv;//住宅名称 public ImageView homeMoveIv;//住宅图片 public ImageView houseDelIv;//删除图标 public ImageView homeMoveIv;//位置移动图标 public ImageView houseSelectIv;//位置移动图标 public MyViewHolder(@NonNull View itemView) { super(itemView); homeNameTv = itemView.findViewById(R.id.house_name_tv); houseDelIv = itemView.findViewById(R.id.house_del_iv); homeMoveIv = itemView.findViewById(R.id.house_move_iv); houseSelectIv = itemView.findViewById(R.id.house_select_iv); } } public interface OnClickListener { public interface OnMoveClickListener { void onMoveClick(int position, HouseIdBean houseIdBean); } public interface OnDelClickListener { void onDelClick(int position, HouseIdBean houseIdBean); } public interface OnItemClickListener { void onItemClick(int position, HouseIdBean houseIdBean); } } app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListEditActivity.java
New file @@ -0,0 +1,246 @@ package com.hdl.photovoltaic.ui.powerstation; import android.os.Bundle; import android.view.View; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.ActivityHouseListEditBinding; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.enums.ShowErrorMode; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import com.hdl.photovoltaic.ui.newC.adapter.HouseListAdapter; import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import org.greenrobot.eventbus.EventBus; import java.util.ArrayList; import java.util.List; /** * 电站编辑(B端) */ public class HouseListEditActivity extends CustomBaseActivity { private ActivityHouseListEditBinding viewBinding; private HouseListAdapter houseListAdapter; private List<HouseIdBean> houseListBeanIDList; @Override public Object getContentView() { viewBinding = ActivityHouseListEditBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { setNotificationBarBackgroundColor(CustomColor.white); setStatusBarTextColor(); //初始化数据 initData(); //初始化 initView(); //初始化界面监听器 initEvent(); } private void initData() { this.houseListBeanIDList = new ArrayList<>(); this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList()); for (int i = 0; i < this.houseListBeanIDList.size(); i++) { this.houseListBeanIDList.get(i).setDelIcon(true); this.houseListBeanIDList.get(i).setMove(true); } } private void initEvent() { //返回按钮 viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { BaseEventBus baseEventBus = new BaseEventBus(); baseEventBus.setTopic(ConstantManage.homepage_title_tab_switch); baseEventBus.setType(HomepageTitleTabSwitch.powerstation.toString()); EventBus.getDefault().post(baseEventBus); finish(); } }); //设置下拉箭头颜色 viewBinding.fragmentHouseSrl.setColorSchemeResources(R.color.text_FF245EC3); //列表下拉按钮 viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { downReadData(true); } }); if (houseListAdapter != null) { //电站移动位置按钮 houseListAdapter.setMoveOnclickListener(new HouseListAdapter.OnMoveClickListener() { @Override public void onMoveClick(int position, HouseIdBean houseIdBean) { String frontHomeId = ""; if (position > 0) { frontHomeId = houseListBeanIDList.get(position - 1).getHomeId(); } HdlResidenceLogic.getInstance().moveResidence(houseIdBean.getHomeId(), frontHomeId, new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { //移动电站位置 HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId()); initData();//初始化缓存数据 houseListAdapter.setList(houseListBeanIDList);//重新刷新列表 nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空 } @Override public void onFailure(HDLException e) { HdlThreadLogic.toast(_mActivity, e); } }); } }); //电站移动位置按钮 houseListAdapter.setDelOnclickListener(new HouseListAdapter.OnDelClickListener() { @Override public void onDelClick(int position, HouseIdBean houseIdBean) { DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity); delayedConfirmationCancelDialog.setTitleContent(getString(R.string.loading_title_tip)); String homeName = "\"" + houseIdBean.getHomeName() + "\""; delayedConfirmationCancelDialog.setContent(getString(R.string.delete_power_station).replace("%s", homeName)); delayedConfirmationCancelDialog.show(); delayedConfirmationCancelDialog.startCountdown(3); delayedConfirmationCancelDialog.setYesOnclickListener(new DelayedConfirmationCancelDialog.onYesOnclickListener() { @Override public void Confirm() { //删除住宅 HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId()); initData();//初始化缓存数据 houseListAdapter.setList(houseListBeanIDList);//重新刷新列表 nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空 delayedConfirmationCancelDialog.dismiss(); } @Override public void onFailure(HDLException e) { HdlThreadLogic.toast(_mActivity, e); } }); } }); delayedConfirmationCancelDialog.setNoOnclickListener(new DelayedConfirmationCancelDialog.onNoOnclickListener() { @Override public void Cancel() { delayedConfirmationCancelDialog.dismiss(); } }); } }); } } private void initView() { viewBinding.toolbarTopFragmentHouseListRl.getRoot().setBackgroundColor(getColor(R.color.text_FFFFFFFF)); viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); viewBinding.toolbarTopFragmentHouseListRl.topLeftIv.setImageResource(R.drawable.back_c); viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.power_station_editing); LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity); houseListAdapter = new HouseListAdapter(_mActivity); viewBinding.fragmentHouseSrlListRc.setLayoutManager(linearLayout); viewBinding.fragmentHouseSrlListRc.setAdapter(houseListAdapter); houseListAdapter.setList(this.houseListBeanIDList); this.nullDataUpdateUi(houseListBeanIDList); } /** * 刷新UI * * @param isRefreshing 表示是下拉刷新的 */ private void downReadData(boolean isRefreshing) { //获取住宅(电站)ID列表 HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() { @Override public void onSuccess(List<HouseIdBean> list) { HdlThreadLogic.runMainThread(new Runnable() { @Override public void run() { if (isRefreshing) { //关闭下拉刷新的圈圈 viewBinding.fragmentHouseSrl.setRefreshing(false); } if (list != null && list.size() > 0) { //更新缓存 HdlResidenceLogic.getInstance().setHouseIdList(list); if (houseListAdapter != null) { initData(); setAllItemEdit(true); //更新UI houseListAdapter.setList(houseListBeanIDList); } } nullDataUpdateUi(list); } }, _mActivity, ShowErrorMode.YES); } @Override public void onFailure(HDLException e) { HdlThreadLogic.runMainThread(new Runnable() { @Override public void run() { if (isRefreshing) { //关闭下拉刷新的圈圈 viewBinding.fragmentHouseSrl.setRefreshing(false); } } }, _mActivity, ShowErrorMode.YES); } }); } /** * 设置全部缓存数据编辑状态 * * @param edit true表示在编辑状态 */ private void setAllItemEdit(boolean edit) { for (int i = 0; i < houseListBeanIDList.size(); i++) { houseListBeanIDList.get(i).setMove(edit); } } /** * 没有电站列表的样式 */ private void nullDataUpdateUi(List<HouseIdBean> list) { HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.my_power_station_data_null), list != null && list.size() > 0); } } app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -40,7 +40,6 @@ * (住宅)电站列表-界面 */ public class HouseListFragment extends CustomBaseFragment { private boolean is_edit = false; private FragmentHouseListBinding viewBinding; private HouseInfoAdapter houseInfoAdapter; private CameraManager manager; @@ -66,23 +65,11 @@ private void initEvent() { viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (is_edit) { is_edit = false; } viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.GONE); initData();//初始化缓存数据 setAllItemEdit(false); houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表 } }); //添加电站 viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resumeTagStatus(); HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); } @@ -99,7 +86,6 @@ houseInfoAdapter.setNoOnclickListener(new HouseInfoAdapter.OnclickListener() { @Override public void onClick(int position, HouseIdBean houseIdBean) { resumeTagStatus(); //点击住宅详情 HdlLogLogic.print("点击住宅详情--->" + new Gson().toJson(houseIdBean), false); HdlResidenceLogic.getInstance().switchHouse(houseIdBean); @@ -135,8 +121,6 @@ @Override public void onDelClick(int position, HouseIdBean houseIdBean) { DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity); delayedConfirmationCancelDialog.setTitleContent(getString(R.string.loading_title_tip)); String homeName = "\"" + houseIdBean.getHomeName() + "\""; @@ -152,7 +136,6 @@ public void onSuccess(Boolean obj) { HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId()); initData();//初始化缓存数据 setAllItemEdit(is_edit); houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表 nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空 delayedConfirmationCancelDialog.dismiss(); @@ -179,18 +162,7 @@ viewBinding.toolbarTopFragmentHouseListRl.topEditIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (is_edit) { //防止多次点击 return; } is_edit = true; viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); if (houseInfoAdapter == null) { return; } initData();//初始化缓存数据 setAllItemEdit(true); houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表 startActivity(HouseListEditActivity.class); } }); } @@ -282,25 +254,12 @@ //接收外部点击事件 if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) { HdlLogLogic.print("正在点击【电站】"); resumeTagStatus(); initData();//初始化缓存数据 setAllItemEdit(false); houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表 } } } /** * 设置全部缓存数据编辑状态 * * @param edit true表示在编辑状态 */ private void setAllItemEdit(boolean edit) { for (int i = 0; i < houseListBeanIDList.size(); i++) { houseListBeanIDList.get(i).setEdit(edit); } } /** * 刷新UI @@ -324,7 +283,6 @@ HdlResidenceLogic.getInstance().setHouseIdList(list); if (houseInfoAdapter != null) { initData(); setAllItemEdit(is_edit); //更新UI houseInfoAdapter.setList(houseListBeanIDList); } @@ -352,13 +310,6 @@ }); } /** * 恢复到未编辑电站状态 */ private void resumeTagStatus() { is_edit = false; //还原编辑标记 viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.GONE);//隐藏后退图标 } /** * 申请权限 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -86,8 +86,9 @@ //region --------【原生】主动发送到【小程序】-------- public final static String UNI_EVENT_NOTIFICATION_DEVICE_MODEL = "uni_notification_model";//通知模块(大类) public final static String UNI_EVENT_NOTIFICATION_DEVICE_LIST = "list";//逆变器设备列表 public final static String UNI_EVENT_NOTIFICATION_DEVICE_CHILD_LIST = "child_list";//逆变器【下挂】设备列表 public final static String UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS = "refresh_details";//刷新电站详情 public final static String UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_USERINFO = "refresh_userinfo";//刷新用户信息 public final static String UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER= "refresh_unread_messages_number";//刷新未读消息数量 public final static String UNI_EVENT_NOTIFICATION_DEVICE_ADD = "add";//设备添加 public final static String UNI_EVENT_NOTIFICATION_DEVICE_DEL = "del";//设备删除 public final static String UNI_EVENT_NOTIFICATION_DEVICE_OID = "oid";//设备【包括下挂设备】oid列表 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -92,12 +92,13 @@ private void removeCallBack() { DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(null); DCUniMPSDK.getInstance().setOnUniMPEventCallBack(null); } /** * 监听相关回调 */ private void registerCallBack() { private void registerCallBack() {DCUniMPSDK.getInstance(); //1.设置小程序被关闭事件监听 DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(new IUniMPOnCloseCallBack() { @Override app/src/main/res/drawable/del_home.png
app/src/main/res/drawable/del_house.pngBinary files differ
app/src/main/res/drawable/select.png
app/src/main/res/layout/activity_house_list_edit.xml
New file @@ -0,0 +1,44 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/text_EDEFF2" tools:context=".ui.powerstation.HouseListEditActivity"> <include android:id="@+id/toolbar_top_fragment_house_list_rl" layout="@layout/toolbar_top_view_44" /> <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/fragment_house_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/toolbar_top_fragment_house_list_rl"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/fragment_house_srl_list_rc" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" android:paddingBottom="@dimen/dp_16" /> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> <!--没有数据显示样式--> <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_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/item_house_line_c.xml
@@ -8,28 +8,53 @@ <TextView android:id="@+id/house_name_tv" android:layout_width="300dp" android:layout_width="0dp" android:layout_height="@dimen/dp_19" android:layout_marginStart="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16" android:ellipsize="end" android:singleLine="true" android:text="@string/power_station" android:textColor="@color/text_90000000" android:textSize="@dimen/text_16" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/house_Image_ll" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@+id/house_move_iv" android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_40" android:layout_marginEnd="@dimen/dp_21" android:src="@drawable/move_c_house" android:visibility="gone" <LinearLayout android:id="@+id/house_Image_ll" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="horizontal" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent"> <ImageView android:id="@+id/house_del_iv" android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_40" android:layout_marginEnd="@dimen/dp_16" android:src="@drawable/del_home" android:visibility="gone" /> <ImageView android:id="@+id/house_move_iv" android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_40" android:layout_marginEnd="@dimen/dp_21" android:src="@drawable/move_c_house" android:visibility="gone" /> <ImageView android:id="@+id/house_select_iv" android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_40" android:layout_marginEnd="@dimen/dp_21" android:visibility="gone" /> </LinearLayout> <View android:layout_width="match_parent" @@ -37,7 +62,6 @@ android:layout_marginStart="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16" android:layout_marginBottom="0.5dp" android:background="@color/text_EDEFF2" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app/src/main/res/layout/swipe_right_layout.xml
@@ -23,7 +23,7 @@ android:id="@+id/del_home_iv" android:layout_width="@dimen/dp_50" android:layout_height="@dimen/dp_50" android:src="@drawable/del_house" /> android:src="@drawable/del_home" /> </LinearLayout> app/src/main/res/values/strings.xml
@@ -221,7 +221,7 @@ <string name="succeed">成功.</string> <string name="delete_power_station">是否要删除XX电站?</string> <string name="delete_power_station">是否要删除%s电站?</string> <string name="power_station_selection">电站选择</string> <string name="alarm_all_device">全部设备</string> <string name="alarm_all_device_inverter">逆变器</string> @@ -238,6 +238,8 @@ <string name="alarm_all_time_30">近30天</string> <string name="alarm_device">设备报警</string> <string name="alarm_record">报警记录</string> <string name="power_station_editing">电站编辑</string> <string name="switch_power_station">是否要切换%s电站?</string> </resources>