From 1f3acf4c29f367e40a3f589b51176ed24e28948f Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 02 九月 2025 17:54:42 +0800
Subject: [PATCH] 2025年09月02日17:54:39
---
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java | 80 +++++++++++++++++++++-------------------
1 files changed, 42 insertions(+), 38 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java
index 49f2262..7e77dc4 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java
@@ -7,6 +7,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
+import android.text.TextUtils;
import android.view.View;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -31,6 +32,7 @@
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.AppManagerUtils;
import com.hdl.photovoltaic.utils.PermissionUtils;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog;
@@ -73,6 +75,8 @@
getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
//鍒濆鍖栨暟鎹�
initData();
+ //璁剧疆褰撳墠鐢电珯閫変腑鐘舵��
+ setSelectState();
//鍒濆鍖�
initView();
//鍒濆鍖栫晫闈㈢洃鍚櫒
@@ -81,10 +85,13 @@
// downReadData(false);
}
+ /**
+ * 鍒濆鍖栫數绔欏垪琛ㄦ暟鎹�
+ */
private void initData() {
this.houseListBeanIDList = new ArrayList<>();
this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
- setSelectState();
+// setSelectState();
}
private void initEvent() {
@@ -127,10 +134,16 @@
houseListAdapter.setDelOnclickListener(new HouseListAdapter.OnDelClickListener() {
@Override
public void onDelClick(int position, HouseIdBean houseIdBean) {
+ if (houseIdBean.isOtherShare()) {
+ //鍒嗕韩杩囨潵鐨勭數绔欎笉鑳藉垹闄�
+ HdlThreadLogic.toast(_mActivity, getString(R.string.no_permission_delete_home));
+ return;
+ }
+
DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity);
delayedConfirmationCancelDialog.show();
delayedConfirmationCancelDialog.isHideTitle(true);
- String del_home = getString(R.string.confirm_deletion) + "\"" + houseIdBean.getHomeName() + "\""+"?";
+ String del_home = getString(R.string.confirm_deletion) + "\"" + houseIdBean.getHomeName() + "\"" + "?";
delayedConfirmationCancelDialog.setContent(del_home);
// delayedConfirmationCancelDialog.startCountdown(4);
@@ -143,14 +156,14 @@
@Override
public void onSuccess(List<GatewayBean> list) {
//鍙戣捣鍒犻櫎鐢电珯鎸囦护
- deleteResidence(houseIdBean.getHomeId(), list);
+ deleteResidence(position, houseIdBean, list);
}
@Override
public void onFailure(HDLException e) {
//鍙戣捣鍒犻櫎鐢电珯鎸囦护
- deleteResidence(houseIdBean.getHomeId(), null);
+ deleteResidence(position, houseIdBean, null);
}
});
@@ -169,7 +182,6 @@
viewBinding.addPowerStationTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
// 鏈巿鏉� 濡傛灉搴旂敤绋嬪簭娌℃湁鎵�闇�鐨勬潈闄愶紝鍒欐樉绀鸿В閲婅鏄�
PermissionExplanationDialog.getInstance().showPortConflictPdDialog(_mActivity, getString(R.string.camera_storage_instructions), getString(R.string.camera_storage_purpose));
PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.CAMERA, new PermissionUtils.PermissionState() {
@@ -271,21 +283,19 @@
hideLoading();
}
if (list != null && !list.isEmpty()) {
- if (!comparableList(houseListBeanIDList, list)) {
- //鏇存柊缂撳瓨
- HdlResidenceLogic.getInstance().setHouseIdList(list, true);
- if (houseListAdapter != null) {
- //閲嶆柊鑾峰彇鍒楄〃鏁版嵁
- initData();
- refreshDetails();
- //鏇存柊鐢电珯閫変腑鐘舵��
- setSelectState();
- //鏇存柊鍒楄〃鏁版嵁
- houseListAdapter.setList(houseListBeanIDList);
- }
-
-
+// if (!comparableList(houseListBeanIDList, list)) {
+ //鏇存柊缂撳瓨
+ HdlResidenceLogic.getInstance().setHouseIdList(list, true);
+ if (houseListAdapter != null) {
+ //閲嶆柊鑾峰彇鍒楄〃鏁版嵁
+ initData();
+ refreshDetails("");
+ //鏇存柊鐢电珯閫変腑鐘舵��
+ setSelectState();
+ //鏇存柊鍒楄〃鏁版嵁
+ houseListAdapter.setList(houseListBeanIDList);
}
+// }
}
nullDataUpdateUi(list);
}
@@ -399,23 +409,25 @@
/**
* 鍒犻櫎鐢电珯
*
- * @param homeId 鐢电珯id
- * @param list 閫嗗彉鍣ㄥ垪琛�
+ * @param position 绱㈠紩鍊�
+ * @param houseIdBean 鐢电珯id瀵硅薄
+ * @param list 閫嗗彉鍣ㄥ垪琛�
*/
- private void deleteResidence(String homeId, List<GatewayBean> list) {
+ private void deleteResidence(final int position, final HouseIdBean houseIdBean, List<GatewayBean> list) {
//鍒犻櫎浣忓畢
- HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
+ HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
@Override
public void onSuccess(Boolean obj) {
hideLoading();
initializeInverter(list); //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;锛堟敞鎰�:鍓嶉潰宸插厛瑙g粦浜戠閫嗗彉鍣紝mqtt閫氶亾宸叉柇寮�锛屽垵濮嬪寲鍙兘鏄湰鍦板彂閫�(鍏堟悳绱㈠眬鍩熺綉閫嗗彉鍣ㄥ垪琛紝寤虹珛鏈湴閫氳閫氶亾)锛�
- HdlResidenceLogic.getInstance().delHouseId(homeId);//鍒犻櫎鐢电珯缂撳瓨
+ HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());//鍒犻櫎鐢电珯缂撳瓨
initData();//鍒濆鍖栫紦瀛樻暟鎹�
- refreshDetails();
- //鏇存柊鐢电珯閫変腑鐘舵��
- setSelectState();
- houseListAdapter.setList(houseListBeanIDList); //鏇存柊鍒楄〃鏁版嵁
+ refreshDetails(houseIdBean.getHomeId());
+ setSelectState();//鏇存柊鐢电珯閫変腑鐘舵��
+ if (houseListAdapter != null) {
+ houseListAdapter.setList(houseListBeanIDList); //鏇存柊鍒楄〃鏁版嵁
+ }
nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
}
@@ -518,7 +530,7 @@
* 閫氱煡uni鏇存柊鏁版嵁
* 锛堝湪骞冲彴涓婂垹闄绔綋鍓嶄綇瀹呭悗,鑾峰彇鍒楄〃瀹炴敹瑕侀�氱煡uni閭h竟鏇存柊鐣岄潰鍗$墖锛�
*/
- private void refreshDetails() {
+ private void refreshDetails(final String homeId) {
try {
List<HouseIdBean> localHouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
if (localHouseIdList.isEmpty()) {
@@ -529,15 +541,7 @@
uniCallBackBaseBean.setData(jsonObject);
HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
} else {
- int select_home = -1;
- for (int i = 0; i < localHouseIdList.size(); i++) {
- if (localHouseIdList.get(i).getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
- select_home = i;
- break;
- }
- }
- if (select_home == -1) {
- //鎵句笉鍒伴粯璁ょ涓�涓�
+ if (homeId.equals(UserConfigManage.getInstance().getHomeId()) || TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
HouseIdBean houseIdBean = localHouseIdList.get(0);
HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
JsonObject jsonObject = new JsonObject();
--
Gitblit v1.8.0