From f50e8e60e9da99e4f69d8ab76810dc7e5fb448bc Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 02 十二月 2024 10:29:09 +0800
Subject: [PATCH] 2024年12月02日10:29:05

---
 app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java |  137 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 112 insertions(+), 25 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 e9ebde6..2dfbf4f 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,7 +1,8 @@
 package com.hdl.photovoltaic.ui.newC;
 
 
-import android.content.Intent;
+import android.Manifest;
+import android.content.DialogInterface;
 import android.os.Bundle;
 import android.view.View;
 
@@ -10,26 +11,28 @@
 
 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.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.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.device.ScanActivity;
 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.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;
@@ -38,12 +41,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() {
@@ -72,29 +75,33 @@
 
     private void initEvent() {
         //杩斿洖鎸夐挳
-        viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
+        viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 if (!is_edit) {
                     finish();
                     return;
                 }
+
                 is_edit = false;
-                viewBinding.toolbarTopFragmentHouseListRl.topMoreBtn.setVisibility(View.VISIBLE);
+                viewBinding.addPowerStationRl.setVisibility(View.VISIBLE);//娣诲姞鐢电珯缁勪欢
+                viewBinding.toolbarTopRl.topMoreBtn.setVisibility(View.VISIBLE);
                 initData();//鍒濆鍖栫紦瀛樻暟鎹�
                 setAllItemEdit(false);
                 houseListAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
             }
         });
         //缂栬緫鎸夐挳
-        viewBinding.toolbarTopFragmentHouseListRl.topMoreBtn.setOnClickListener(new View.OnClickListener() {
+        viewBinding.toolbarTopRl.topMoreBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 if (is_edit) {
                     return;
                 }
+
                 is_edit = true;
-                viewBinding.toolbarTopFragmentHouseListRl.topMoreBtn.setVisibility(View.GONE);
+                viewBinding.addPowerStationRl.setVisibility(View.GONE);//娣诲姞鐢电珯缁勪欢
+                viewBinding.toolbarTopRl.topMoreBtn.setVisibility(View.GONE);
                 initData();//鍒濆鍖栫紦瀛樻暟鎹�
                 setAllItemEdit(true);
                 houseListAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
@@ -115,9 +122,13 @@
             houseListAdapter.setMoveOnclickListener(new HouseListAdapter.OnMoveClickListener() {
                 @Override
                 public void onMoveClick(int position, HouseIdBean houseIdBean) {
+                    if (position == 0) {
+                        HdlThreadLogic.toast(_mActivity, getString(R.string.already_the_first_one));
+                        return;
+                    }
                     String frontHomeId = "";
-                    if (position > 0) {
-                        frontHomeId = houseListBeanIDList.get(position - 1).getHomeId();
+                    if (position > 1) {
+                        frontHomeId = houseListBeanIDList.get(position - 2).getHomeId();
                     }
                     HdlResidenceLogic.getInstance().moveResidence(houseIdBean.getHomeId(), frontHomeId, new CloudCallBeak<Boolean>() {
                         @Override
@@ -125,6 +136,7 @@
                             //绉诲姩鐢电珯浣嶇疆
                             HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
                             initData();//鍒濆鍖栫紦瀛樻暟鎹�
+                            setAllItemEdit(is_edit);
                             houseListAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
                             nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
                         }
@@ -154,17 +166,39 @@
                 }
             });
 
+
         }
+
+        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.topLeftIv.setImageResource(R.drawable.back_c);
-        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.power_station_selection);
-        viewBinding.toolbarTopFragmentHouseListRl.topMoreBtn.setVisibility(View.VISIBLE);
-        viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setImageResource(R.drawable.editor_house);
+        viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
+        viewBinding.toolbarTopRl.topTitleTv.setText(R.string.power_station_selection);
+        viewBinding.toolbarTopRl.topMoreBtn.setVisibility(View.VISIBLE);
+        viewBinding.toolbarTopRl.topMoreIv.setImageResource(R.drawable.editor_house);
         LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity);
         houseListAdapter = new HouseListAdapter(_mActivity);
         viewBinding.fragmentHouseSrlListRc.setLayoutManager(linearLayout);
@@ -245,6 +279,7 @@
         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);
     }
 
+
     /**
      * 浜屾纭鎻愮ず妗�
      *
@@ -255,22 +290,21 @@
         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() {
-                UserConfigManage.getInstance().setHomeId(houseIdBean.getHomeId());
-                UserConfigManage.getInstance().Save();
+                HdlResidenceLogic.getInstance().switchHouse(houseIdBean,true);
                 dialog.dismiss();
                 JsonObject jsonObject = new JsonObject();
                 jsonObject.addProperty("homeId", houseIdBean.getHomeId());
                 jsonObject.addProperty("homeName", houseIdBean.getHomeName());
-                jsonObject.addProperty("powerStationStatus", houseIdBean.getPowerStationStatus());
+                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()
@@ -283,9 +317,62 @@
         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();
             }
         });
+
+        dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
+            @Override
+            public void onDismiss(DialogInterface dialog) {
+                //鍙栨秷涔嬪悗杩樺師涔嬪墠鐘舵��
+                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();
+            }
+        });
     }
+
+
+    /**
+     * 鏀跺埌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