From 30859ca8f2175475d2c666353bc27f3b2ceede53 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 22 八月 2024 13:43:47 +0800
Subject: [PATCH] 2024年08月22日13:43:45

---
 app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java |  199 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 178 insertions(+), 21 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
index 7828cfc..6493916 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java
@@ -1,23 +1,37 @@
 package com.hdl.photovoltaic.ui.newC;
 
 
+import android.Manifest;
 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.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.internet.HttpClient;
 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.bean.HouseIdBean;
+import com.hdl.photovoltaic.ui.device.ScanActivity;
 import com.hdl.photovoltaic.ui.newC.adapter.HouseListAdapter;
+import com.hdl.photovoltaic.uni.HDLUniMP;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.utils.PermissionUtils;
+import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
+import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -26,12 +40,12 @@
  * C绔數绔欏垪琛ㄧ紪杈�
  */
 public class PowerStationsListEdit extends CustomBaseActivity {
-    private ActivityPowerStationsListBinding viewBinding;
+    private ActivityPowerStationsListBinding viewBinding;//鏄惁鍦ㄧ紪杈戠姸鎬�
 
     private HouseListAdapter houseListAdapter;
     private List<HouseIdBean> houseListBeanIDList;
 
-    private boolean is_edit = false;
+    private boolean is_edit = false;//琛ㄧず鏄惁鍦ㄧ紪杈戠姸鎬�(true=鍦ㄧ紪杈戠姸鎬�)
 
     @Override
     public Object getContentView() {
@@ -42,6 +56,8 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
+        setNotificationBarBackgroundColor(CustomColor.white);
+        setStatusBarTextColor();
         //鍒濆鍖栨暟鎹�
         initData();
         //鍒濆鍖�
@@ -53,18 +69,21 @@
     private void initData() {
         this.houseListBeanIDList = new ArrayList<>();
         this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
+        setAllItemEdit(false);
     }
 
     private void initEvent() {
         //杩斿洖鎸夐挳
-        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
+        viewBinding.toolbarTopFragmentHouseListRl.topBackLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 if (!is_edit) {
                     finish();
                     return;
                 }
+
                 is_edit = false;
+                viewBinding.addPowerStationRl.setVisibility(View.VISIBLE);//娣诲姞鐢电珯缁勪欢
                 viewBinding.toolbarTopFragmentHouseListRl.topMoreBtn.setVisibility(View.VISIBLE);
                 initData();//鍒濆鍖栫紦瀛樻暟鎹�
                 setAllItemEdit(false);
@@ -78,7 +97,9 @@
                 if (is_edit) {
                     return;
                 }
+
                 is_edit = true;
+                viewBinding.addPowerStationRl.setVisibility(View.GONE);//娣诲姞鐢电珯缁勪欢
                 viewBinding.toolbarTopFragmentHouseListRl.topMoreBtn.setVisibility(View.GONE);
                 initData();//鍒濆鍖栫紦瀛樻暟鎹�
                 setAllItemEdit(true);
@@ -97,33 +118,83 @@
         });
         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);
-//                    }
-//                });
+                    if (position == 0) {
+                        HdlThreadLogic.toast(_mActivity, getString(R.string.already_the_first_one));
+                        return;
+                    }
+                    String frontHomeId = "";
+                    if (position > 1) {
+                        frontHomeId = houseListBeanIDList.get(position - 2).getHomeId();
+                    }
+                    HdlResidenceLogic.getInstance().moveResidence(houseIdBean.getHomeId(), frontHomeId, new CloudCallBeak<Boolean>() {
+                        @Override
+                        public void onSuccess(Boolean obj) {
+                            //绉诲姩鐢电珯浣嶇疆
+                            HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
+                            initData();//鍒濆鍖栫紦瀛樻暟鎹�
+                            setAllItemEdit(is_edit);
+                            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);
+                }
+            });
+
         }
+
+        viewBinding.addPowerStationTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.CAMERA, new PermissionUtils.PermissionState() {
+                    @Override
+                    public void Success(int value) {
+                        if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) {
+//                            HdlThreadLogic.toast(_mActivity, R.string.permission_open);
+                            return;
+                        }
+
+
+//                        startActivity(CaptureActivity.class);
+                        startActivity(ScanActivity.class);
+                    }
+                }, true);
+//                String path = HDLUniMP.UNI_EVENT_OPEN_DEVICESCAN + "?scanType=addPowerStation";
+//                HdlUniLogic.getInstance().openUniMP(path, null);
+//                startActivity(FastScanActivity.class);
+
+            }
+        });
 
     }
 
     private void initView() {
         viewBinding.toolbarTopFragmentHouseListRl.getRoot().setBackgroundColor(getColor(R.color.text_FFFFFFFF));
-        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE);
+        viewBinding.toolbarTopFragmentHouseListRl.topBackLl.setVisibility(View.VISIBLE);
         viewBinding.toolbarTopFragmentHouseListRl.topLeftIv.setImageResource(R.drawable.back_c);
         viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.power_station_selection);
         viewBinding.toolbarTopFragmentHouseListRl.topMoreBtn.setVisibility(View.VISIBLE);
@@ -193,7 +264,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);
+            }
         }
     }
 
@@ -203,4 +278,86 @@
     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.isHideTitle(true);
+        dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+            @Override
+            public void Confirm() {
+                HdlResidenceLogic.getInstance().switchHouse(houseIdBean);
+                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() {
+                //鍙栨秷涔嬪悗杩樺師涔嬪墠鐘舵��
+                for (int i = 0; i < houseListBeanIDList.size(); i++) {
+                    HouseIdBean houseIdBean = houseListBeanIDList.get(i);
+                    houseIdBean.setState_select(false);
+                    if (UserConfigManage.getInstance().getHomeId().equals(houseIdBean.getHomeId())) {
+                        houseIdBean.setState_select(true);
+                    }
+                }
+                houseListAdapter.notifyDataSetChanged();
+                dialog.dismiss();
+            }
+        });
+    }
+
+
+    /**
+     * 鏀跺埌EventBUs閫氱煡
+     *
+     * @param eventBus 鏁版嵁
+     */
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEventMessage(BaseEventBus eventBus) {
+        super.onEventMessage(eventBus);
+        if (HDLUniMP.UNI_EVENT_REPLY_HOME_ADD.equals(eventBus.getTopic())) {
+            if (HDLUniMP.UNI_EVENT_REPLY_HOME_ADD.equals(eventBus.getType())) {
+//                // 鍙栨秷绮樻�т簨浠�
+//                EventBus.getDefault().removeStickyEvent(eventBus);
+                HttpClient.getInstance().requestHttpGet(eventBus.getData().toString(), new CloudCallBeak<String>() {
+                    @Override
+                    public void onSuccess(String obj) {
+                        downReadData(true);
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HdlThreadLogic.toast(_mActivity, e);
+                    }
+                });
+
+            }
+        }
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.8.0