From 7807eab462ad7c008ebe93af151f5520fdb3159a Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 15 十月 2024 10:51:59 +0800
Subject: [PATCH] 2024年10月15日10:51:57
---
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListEdit.java | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 203 insertions(+), 29 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..3207246 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,38 @@
package com.hdl.photovoltaic.ui.newC;
+import android.Manifest;
+import android.content.DialogInterface;
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 +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() {
@@ -42,6 +57,8 @@
@Override
public void onBindView(Bundle savedInstanceState) {
+ setNotificationBarBackgroundColor(CustomColor.white);
+ setStatusBarTextColor();
//鍒濆鍖栨暟鎹�
initData();
//鍒濆鍖�
@@ -53,33 +70,38 @@
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.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);//閲嶆柊鍒锋柊鍒楄〃
@@ -97,37 +119,88 @@
});
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.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.getRoot().setBackgroundColor(getColor(R.color.text_FFECECEC));
+ viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
+ viewBinding.toolbarTopRl.topLeftIv.setImageResource(R.drawable.back_c);
+ 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);
@@ -193,7 +266,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 +280,101 @@
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();
+ }
+ });
+
+ 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