mac
2024-03-12 0b6f27a6aeeb6eb3d5ee55b500797875c2bd5d2c
2024年03月12日21:07:52

备份一下代码
4个文件已添加
1个文件已删除
14个文件已修改
688 ■■■■ 已修改文件
app/src/main/AndroidManifest.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/me/PersonalDataActivity.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/newC/adapter/HouseListAdapter.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListEditActivity.java 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/del_home.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/del_house.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/select.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_house_list_edit.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_house_line_c.xml 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/swipe_right_layout.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/strings.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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() {
        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) {
                    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);
//                    }
//                });
                        }
                        @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.png
Binary 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,17 +8,37 @@
    <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" />
    <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">
        <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"
@@ -26,10 +46,15 @@
        android:layout_height="@dimen/dp_40"
        android:layout_marginEnd="@dimen/dp_21"
        android:src="@drawable/move_c_house"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
            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>