From a4e8dee87338beef6f45f053d8fa9c36dc74ed09 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 06 五月 2024 19:53:17 +0800
Subject: [PATCH] 2024年05月06日19:53:11
---
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 590 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 497 insertions(+), 93 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
index e5f3378..56b4f0c 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -1,59 +1,77 @@
package com.hdl.photovoltaic.ui.powerstation;
import android.Manifest;
-import android.content.Context;
import android.content.pm.PackageManager;
-import android.hardware.camera2.CameraManager;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.gson.Gson;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
-import com.hdl.photovoltaic.config.AppConfigManage;
+import com.hdl.photovoltaic.bean.PageNumberObject;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
import com.hdl.photovoltaic.enums.ShowErrorMode;
+import com.hdl.photovoltaic.enums.SortType;
+import com.hdl.photovoltaic.enums.SortValue;
import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.listener.LinkCallBack;
+import com.hdl.photovoltaic.other.HdlCommonLogic;
+import com.hdl.photovoltaic.other.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlResidenceLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.other.HdlUniLogic;
+import com.hdl.photovoltaic.ui.adapter.DeviceInfoAdapter;
import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
+import com.hdl.photovoltaic.ui.bean.DeviceBean;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.utils.PermissionUtils;
+import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog;
+import com.hdl.sdk.link.common.exception.HDLLinkException;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
+import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
import java.util.ArrayList;
import java.util.List;
/**
- * (浣忓畢)鐢电珯鍒楄〃-鐣岄潰
+ * 鐢电珯鍜岃澶�-鐣岄潰
*/
public class HouseListFragment extends CustomBaseFragment {
-
- public static final String SORT_TYPE_1 = "powerSort";//鍙戠數鍔熺巼鎺掑簭
- public static final String SORT_TYPE_2 = "todayElectricitySort";//浠婃棩鍙戠數閲忔帓搴�
- public static final String SORT_TYPE_3 = "createTimeSort";//鍒涘缓鏃堕棿鎺掑簭
- public static final String DESCENDING = "descending";//闄嶅簭
- public static final String ASCENDING = "ascending";//鍗囧簭
- public static final String SELECTED_SORT_TYPE = SORT_TYPE_1;
- public static final String SELECTED_SORT = DESCENDING;
-
private FragmentHouseListBinding viewBinding;
private HouseInfoAdapter houseInfoAdapter;
- private CameraManager manager;
- private List<HouseIdBean> houseListBeanIDList = null;
+ private DeviceInfoAdapter deviceInfoAdapter;
+
+ private List<HouseIdBean> houseListBeanIDList;
+ private List<DeviceBean> deviceInfoList;
+
+
+ private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜
+ private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮�
+ private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
+
+ private int currentDeviceListPage = 0; // 褰撳墠璁惧鍒楄〃椤电爜
+ private int currentDeviceListTotal = 0; // 璁惧鍒楄〃鎬婚〉鐮�
+ private boolean isDeviceLoadingMore = false; // 鏍囪璁惧鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
+
+ private boolean isClickPowerStationLabel = true;//(鐢电珯鏍囩=true锛岃澶囨爣绛�=false)
+
+ private String key = SortValue.all;
+ private String value = SortValue.all;
+
+ private long pageSize = 20;//椤垫暟
@Override
@@ -64,93 +82,304 @@
@Override
public void onBindView(Bundle savedInstanceState) {
- manager = (CameraManager) _mActivity.getSystemService(Context.CAMERA_SERVICE);
initData();
//鍒濆鍖�
initView();
//鍒濆鍖栫晫闈㈢洃鍚櫒
initEvent();
-// requestPermissions(new PermissionsResultCallback() {
-// @Override
-// public void succeed() {
-//
-//
-// }
-//
-// @Override
-// public void failing() {
-// }
-// });
-
}
private void initEvent() {
-
- //娣诲姞鐢电珯
- viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setOnClickListener(new View.OnClickListener() {
+ //鐢电珯鏍囩
+ viewBinding.powerStationLabel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- requestPermissions(new PermissionsResultCallback() {
- @Override
- public void succeed() {
+ if (isClickPowerStationLabel) {
+ return;
+ }
+ isClickPowerStationLabel = true;
+ viewBinding.powerStationLabel.setTextAppearance(R.style.Text20Style);
+ viewBinding.deviceLabel.setTextAppearance(R.style.Text16Style);
+ viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
+ viewBinding.deviceLabelParent.setVisibility(View.GONE);//璁惧鏍囩闅愯棌
+ loadNextPageHouseList(true, 1, true);
+ }
+ });
+ //璁惧鏍囩
+ viewBinding.deviceLabel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (!isClickPowerStationLabel) {
+ return;
+ }
+ isClickPowerStationLabel = false;
+ viewBinding.deviceLabel.setTextAppearance(R.style.Text20Style);
+ viewBinding.powerStationLabel.setTextAppearance(R.style.Text16Style);
+ viewBinding.editIv.setVisibility(View.GONE);//缂栬緫鍥炬爣闅愯棌
+ viewBinding.addIv.setVisibility(View.GONE);//娣诲姞鍥炬爣闅愯棌
+ viewBinding.powerStationLabelParent.setVisibility(View.GONE);//鐢电珯鏍囩闅愯棌
+ viewBinding.deviceLabelParent.setVisibility(View.VISIBLE);
+ loadNextPageDeviceList(true, 1, true);
+ }
+ });
-// Intent intent = new Intent();
-// intent.setClass(_mActivity, FastScanActivity.class);
-// startActivity(intent);
-// // 鎵撳紑灏忕▼搴忛〉闈�
- HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
- }
-
- @Override
- public void failing() {
- }
- });
+ //娣诲姞鐢电珯
+ viewBinding.addIv.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
}
});
- //璁剧疆涓嬫媺绠ご棰滆壊
+ //鐢电珯璁剧疆涓嬫媺绠ご棰滆壊
viewBinding.fragmentHouseSrl.setColorSchemeResources(R.color.text_FF245EC3);
+ //鐢电珯涓嬫媺璇诲彇
viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
- updateUIData(true);
- HdlLogLogic.print("HouseListFragment涓嬫媺鍒锋柊", false);
+ viewBinding.fragmentHouseSrl.setRefreshing(false);
+ loadNextPageHouseList(true, 1, true);
}
});
+ //鐢电珯涓婃媺璇诲彇
+ viewBinding.fragmentHouseSrlListRc.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+// super.onScrolled(recyclerView, dx, dy);
+
+ LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
+ if (layoutManager == null) {
+ return;
+ }
+ int visibleItemCount = layoutManager.getChildCount();
+ int totalItemCount = layoutManager.getItemCount();
+ int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
+ if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
+ if (!isHouseLoadingMore) {
+ // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+ HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+ loadNextPageHouseList(false, ++currentHouseListPage, false);
+ }
+ }
+ }
+ });
+ //杩涘叆鐢电珯璇︽儏,鍒犻櫎鐢电珯,绉诲姩鐢电珯浣嶇疆
houseInfoAdapter.setNoOnclickListener(new HouseInfoAdapter.OnclickListener() {
@Override
public void onClick(int position, HouseIdBean houseIdBean) {
//鐐瑰嚮浣忓畢璇︽儏
HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏--->" + new Gson().toJson(houseIdBean), false);
HdlResidenceLogic.getInstance().switchHouse(houseIdBean);
- String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS
- + "?homeId=" + houseIdBean.getHomeId()
- + "&homeName=" + houseIdBean.getHomeName()
- + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
+ String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
HdlUniLogic.getInstance().openUniMP(path, null);
}
+
+ @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 > 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();//鍒濆鍖栫紦瀛樻暟鎹�
+ houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+ nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ HdlThreadLogic.toast(_mActivity, e);
+ }
+ });
+
+
+ }
+
+ @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(4);
+ delayedConfirmationCancelDialog.setYesOnclickListener(new DelayedConfirmationCancelDialog.onYesOnclickListener() {
+ @Override
+ public void Confirm() {
+ delayedConfirmationCancelDialog.dismiss();
+ showLoading(getString(R.string.deleting_please_wait));
+ HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(houseIdBean.getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
+ @Override
+ public void onSuccess(List<GatewayBean> list) {
+ //鍙戣捣鍒犻櫎鐢电珯鎸囦护
+ deleteResidence(houseIdBean.getHomeId(), list);
+
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ //鍙戣捣鍒犻櫎鐢电珯鎸囦护
+ deleteResidence(houseIdBean.getHomeId(), null);
+ }
+ });
+
+// //鍒犻櫎浣忓畢
+// HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
+// @Override
+// public void onSuccess(Boolean obj) {
+// HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());
+// initData();//鍒濆鍖栫紦瀛樻暟鎹�
+// houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+// nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
+// }
+//
+// @Override
+// public void onFailure(HDLException e) {
+// HdlThreadLogic.toast(_mActivity, e);
+// }
+// });
+ }
+ });
+ delayedConfirmationCancelDialog.setNoOnclickListener(new DelayedConfirmationCancelDialog.onNoOnclickListener() {
+ @Override
+ public void Cancel() {
+ delayedConfirmationCancelDialog.dismiss();
+ }
+ });
+
+ }
});
+ //缂栬緫鐢电珯鎸夐挳
+ viewBinding.editIv.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(HouseListEditActivity.class);
+ }
+ });
+ //鐢电珯鍚嶇О绛涢��
+ viewBinding.stationNameRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ boolean isSelected = !v.isSelected();
+ viewBinding.stationNameRl.setSelected(isSelected);
+ viewBinding.stationNameIv.setSelected(isSelected);
+ key = SortType.homeNameSort;
+ value = isSelected ? SortValue.ascending : SortValue.descending;
+ }
+ });
+ //鍙戠數鍔熺巼绛涢��
+ viewBinding.stationPowerRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ boolean isSelected = !v.isSelected();
+ viewBinding.stationPowerRl.setSelected(isSelected);
+ viewBinding.stationPowerIv.setSelected(isSelected);
+ key = SortType.powerSort;
+ value = isSelected ? SortValue.ascending : SortValue.descending;
+ }
+ });
+ //褰撴棩鍙戠數閲忕瓫閫�
+ viewBinding.stationDayRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ boolean isSelected = !v.isSelected();
+ viewBinding.stationDayRl.setSelected(isSelected);
+ viewBinding.stationDayIv.setSelected(isSelected);
+ key = SortType.todayElectricitySort;
+ value = isSelected ? SortValue.ascending : SortValue.descending;
+ }
+ });
+ //褰撴湀鍙戠數閲忕瓫閫�
+ viewBinding.stationMonthRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ boolean isSelected = !v.isSelected();
+ viewBinding.stationMonthRl.setSelected(isSelected);
+ viewBinding.stationMonthIv.setSelected(isSelected);
+ key = SortType.monthElectricitySort;
+ value = isSelected ? SortValue.ascending : SortValue.descending;
+ }
+ });
+ //鐐瑰嚮璁惧
+ deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() {
+ @Override
+ public void onClick(int position, DeviceBean deviceBean) {
+
+ }
+ });
+ //璁惧璁剧疆涓嬫媺绠ご棰滆壊
+ viewBinding.fragmentDeviceSrl.setColorSchemeResources(R.color.text_FF245EC3);
+ //璁惧涓嬫媺璇诲彇
+ viewBinding.fragmentDeviceSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+ @Override
+ public void onRefresh() {
+ viewBinding.fragmentDeviceSrl.setRefreshing(false);
+ loadNextPageDeviceList(false, 1, true);
+ }
+ });
+ //璁惧涓婃媺璇诲彇
+ viewBinding.fragmentDeviceSrlListRc.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+// super.onScrolled(recyclerView, dx, dy);
+
+ LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
+ if (layoutManager == null) {
+ return;
+ }
+ int visibleItemCount = layoutManager.getChildCount();
+ int totalItemCount = layoutManager.getItemCount();
+ int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
+ if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
+ if (!isDeviceLoadingMore) {
+ // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+ HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+ loadNextPageDeviceList(false, ++currentDeviceListPage, false);
+ }
+ }
+ }
+ });
+
}
private void initView() {
- viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.my_power_station);
- viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setVisibility(View.VISIBLE);
- viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setImageResource(R.drawable.add);
- LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity);
+ viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
+ viewBinding.deviceLabelParent.setVisibility(View.GONE);
+ //鐢电珯鏍囩
houseInfoAdapter = new HouseInfoAdapter(_mActivity);
- viewBinding.fragmentHouseSrlListRc.setLayoutManager(linearLayout);
+ viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter);
houseInfoAdapter.setList(this.houseListBeanIDList);
- this.nullDataUpdateUi(houseListBeanIDList);
+
+ //璁惧鏍囩
+ deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
+ viewBinding.fragmentDeviceSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
+ viewBinding.fragmentDeviceSrlListRc.setAdapter(deviceInfoAdapter);
+ this.nullDataUpdateUi();
}
private void initData() {
- this.houseListBeanIDList = new ArrayList<>();
- this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
+ if (isClickPowerStationLabel) {
+ this.houseListBeanIDList = new ArrayList<>();
+ this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
+ } else {
+ this.deviceInfoList = new ArrayList<>();
+ this.deviceInfoList.add(new DeviceBean());
+// this.deviceInfoList.addAll(HdlDeviceLogic.getInstance().getListDevice());
+ }
}
/**
@@ -164,7 +393,7 @@
if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(eventBus.getTopic())) {
if (HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION.equals(eventBus.getType())) {
//uin鍒涘缓鐢电珯鎴愬姛鍚庨�氱煡
- updateUIData(false);
+ loadNextPageHouseList(false, 1, true);
if (eventBus.getData() != null) {
Gson gson = new Gson();
String json = eventBus.getData().toString();
@@ -203,52 +432,70 @@
if (MqttRecvClient.getInstance() != null) {
MqttRecvClient.getInstance().removeAllTopic();
}
- updateUIData(false);
+ loadNextPageHouseList(false, 1, true);
} else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) {
//杩涘幓浣忓畢璇︽儏uni璇诲彇閫嗗彉鍣ㄥ垪琛ㄦ垚鍔熷悗閫氱煡
-// for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList().size(); i++) {
- //String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList().get(i).getGatewayId();
- //瀛楃涓叉槸鑷繁鎸夎鍒欐嫾鎺ョ殑,閲岄潰娉ㄥ唽涓婚鏃朵細瑙f瀽瀛楃涓�,鍙嬁getGatewayId()鍊�;
- //String topic = "/user/" + gatewayId+"/1";
- //杩涘幓浣忓畢璇︽儏寮�濮嬭闃呬富棰�
- MqttRecvClient.getInstance().checkAndsubscribeAllTopics("");
-// }
+ for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()).size(); i++) {
+ String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()).get(i).getGatewayId();
+ //瀛楃涓叉槸鑷繁鎸夎鍒欐嫾鎺ョ殑,閲岄潰娉ㄥ唽涓婚鏃朵細瑙f瀽瀛楃涓�,鍙嬁getGatewayId()鍊�;
+ String topic = "/user/" + gatewayId + "/#";
+ //杩涘幓浣忓畢璇︽儏寮�濮嬭闃呬富棰�
+ MqttRecvClient.getInstance().checkAndsubscribeAllTopics(topic);
+ }
} else if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
//鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) {
HdlLogLogic.print("姝e湪鐐瑰嚮銆愮數绔欍��");
+ loadNextPageHouseList(true, 1, true);
}
}
}
+
/**
- * 鍒锋柊UI
+ * 鍒锋柊UI锛堢數绔欙級
*
* @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
*/
- private void updateUIData(boolean isRefreshing) {
+ private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) {
+ if (isClear) {
+ clearData();
+ }
+ //绗竴椤佃鍙栨暟鎹己鍒惰鍙�
+ if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) {
+ --currentHouseListPage;
+ //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
+ return;
+ }
+ isHouseLoadingMore = true;//鏍囪璇诲彇鐘舵��
+ if (isRefreshing) {
+ showLoading();
+ }
+
//鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
- HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
+ HdlResidenceLogic.getInstance().getResidenceIdList(key, value, pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() {
@Override
- public void onSuccess(List<HouseIdBean> list) {
+ public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) {
HdlThreadLogic.runMainThread(new Runnable() {
@Override
public void run() {
if (isRefreshing) {
- //鍏抽棴涓嬫媺鍒锋柊鐨勫湀鍦�
- viewBinding.fragmentHouseSrl.setRefreshing(false);
+ hideLoading();
}
- if (list != null && list.size() > 0) {
+ isHouseLoadingMore = false;
+ if (houseBeanClass != null) {
+ currentHouseListTotal = (int) houseBeanClass.getTotalPage();
+ currentHouseListPage = (int) houseBeanClass.getPageNo();
//鏇存柊缂撳瓨
- HdlResidenceLogic.getInstance().setHouseIdList(list);
+ HdlResidenceLogic.getInstance().setHouseIdList(houseBeanClass.getList());
if (houseInfoAdapter != null) {
+ initData();
//鏇存柊UI
- houseInfoAdapter.setList(list);
+ houseInfoAdapter.setList(houseListBeanIDList);
}
-
}
- nullDataUpdateUi(list);
+ nullDataUpdateUi();
}
}, _mActivity, ShowErrorMode.YES);
@@ -259,13 +506,177 @@
HdlThreadLogic.runMainThread(new Runnable() {
@Override
public void run() {
+ if (currentHouseListPage > 1) {
+ --currentHouseListPage;
+ }
+ isHouseLoadingMore = false;
if (isRefreshing) {
- //鍏抽棴涓嬫媺鍒锋柊鐨勫湀鍦�
- viewBinding.fragmentHouseSrl.setRefreshing(false);
+ hideLoading();
}
}
}, _mActivity, ShowErrorMode.YES);
+ }
+ });
+ }
+
+ /**
+ * 鍒锋柊UI锛堣澶囷級
+ *
+ * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
+ * @param pageNo 椤电爜
+ * @param isClear true琛ㄧず娓呯┖缂撳瓨
+ */
+ private void loadNextPageDeviceList(boolean isRefreshing, long pageNo, boolean isClear) {
+ if (isClear) {
+ clearData();
+ }
+ //绗竴椤佃鍙栨暟鎹己鍒惰鍙�
+ if (pageNo > 1 && currentDeviceListPage > currentDeviceListTotal) {
+ --currentDeviceListPage;
+ //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
+ return;
+ }
+ isDeviceLoadingMore = true;//鏍囪璇诲彇鐘舵��
+ if (isRefreshing) {
+ showLoading();
+ }
+ //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
+ HdlDeviceLogic.getInstance().getPowerStationDeviceList("", pageNo, pageSize, new CloudCallBeak<PageNumberObject<DeviceBean>>() {
+ @Override
+ public void onSuccess(PageNumberObject<DeviceBean> pageNumberObject) {
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ if (isRefreshing) {
+ hideLoading();
+ }
+ isDeviceLoadingMore = false;
+ if (pageNumberObject != null) {
+ currentDeviceListTotal = (int) pageNumberObject.getTotalPage();
+ currentDeviceListPage = (int) pageNumberObject.getPageNo();
+ //鏇存柊缂撳瓨
+ HdlDeviceLogic.getInstance().setListDevice(pageNumberObject.getList());
+ //鏇存柊缂撳瓨
+ if (deviceInfoAdapter != null) {
+ initData();
+ //鏇存柊UI
+ deviceInfoAdapter.setList(deviceInfoList);
+ }
+ }
+ nullDataUpdateUi();
+ }
+ }, _mActivity, ShowErrorMode.YES);
+
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ if (currentDeviceListPage > 1) {
+ --currentDeviceListPage;
+ }
+ isDeviceLoadingMore = false;
+ if (isRefreshing) {
+ hideLoading();
+ }
+
+ }
+ }, _mActivity, ShowErrorMode.YES);
+ }
+ });
+ }
+
+
+ /**
+ * 娓呯┖缂撳瓨鏁版嵁
+ */
+ private void clearData() {
+ if (isClickPowerStationLabel) {
+ currentHouseListPage = 0;// 閲嶇疆褰撳墠鐢电珯鍒楄〃椤电爜
+ currentHouseListTotal = 0;// 閲嶇疆褰撳墠鐢电珯鍒楄〃鎬婚〉鐮�
+ if (houseListBeanIDList != null) {
+ houseListBeanIDList.clear(); //娓呯┖涓存椂缂撳瓨鍒楄〃
+ }
+ HdlResidenceLogic.getInstance().clearHouseList(); //琛ㄧず寮哄埗娓呯┖鎵�鏈夌紦瀛樹俊鎭�
+ } else {
+ currentDeviceListPage = 0; // 閲嶇疆褰撳墠璁惧鍒楄〃椤电爜
+ currentDeviceListTotal = 0; // 閲嶇疆璁惧鍒楄〃鎬婚〉鐮�
+ if (deviceInfoList != null) {
+ deviceInfoList.clear();//娓呯┖涓存椂缂撳瓨鍒楄〃
+ }
+ HdlDeviceLogic.getInstance().clearDeviceList(); //琛ㄧず寮哄埗娓呯┖鎵�鏈夌紦瀛樹俊鎭�
+ }
+ }
+
+
+ /**
+ * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
+ */
+ private void nullDataUpdateUi() {
+ boolean is_data;
+ if (isClickPowerStationLabel) {
+ is_data = houseListBeanIDList != null && houseListBeanIDList.size() > 0;
+ } else {
+ is_data = deviceInfoList != null && deviceInfoList.size() > 0;
+ }
+ HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.my_power_station_data_null), is_data);
+ }
+
+ /**
+ * 鍒犻櫎鐢电珯,閫嗗彉鍣�
+ * (寮�濮嬪垹闄ょ數绔欙紝鍚屾椂锛屽悜閫嗗彉鍣ㄥ彂閫佸垵濮嬪寲閫嗗彉鍣ㄦ寚浠�,鏃犻』澶勭悊缁撴灉)
+ *
+ * @param list 璁惧鍒楄〃
+ */
+ private void initializeInverter(List<GatewayBean> list) {
+ if (list == null || list.size() == 0) {
+ return;
+ }
+ for (int i = 0; i < list.size(); i++) {
+ GatewayBean gatewayBean = list.get(i);
+ HdlDeviceLogic.getInstance().initializeGateway(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() {
+ @Override
+ public void onSuccess(Boolean obj) {
+// HdlLogLogic.print("鍒濆鍖栭�嗗彉鍣ㄦ垚鍔�-->mac:" + cloudInverterDeviceBean.getOsn(),true);
+ }
+
+ @Override
+ public void onError(HDLLinkException e) {
+// HdlLogLogic.print("鍒濆鍖栭�嗗彉鍣ㄥけ璐�-->mac:" + cloudInverterDeviceBean.getOsn(),true);
+ }
+ });
+ }
+ }
+
+ /**
+ * 鍒犻櫎鐢电珯
+ *
+ * @param homeId 鐢电珯id
+ * @param list 閫嗗彉鍣ㄥ垪琛�
+ */
+ private void deleteResidence(String homeId, List<GatewayBean> list) {
+
+ //鍒犻櫎浣忓畢
+ HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
+ @Override
+ public void onSuccess(Boolean obj) {
+ hideLoading();
+ //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;
+ initializeInverter(list);
+ HdlResidenceLogic.getInstance().delHouseId(homeId);
+ initData();//鍒濆鍖栫紦瀛樻暟鎹�
+ houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+ nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ hideLoading();
+
+ HdlThreadLogic.toast(_mActivity, e);
}
});
}
@@ -298,6 +709,10 @@
if (mPermissionsResultCallback != null) {
mPermissionsResultCallback.succeed();
}
+ } else {
+ if (mPermissionsResultCallback != null) {
+ mPermissionsResultCallback.failing();
+ }
}
}
@@ -314,17 +729,6 @@
void failing();
- }
-
- /**
- * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
- */
- private void nullDataUpdateUi(List<HouseIdBean> list) {
- if (list != null && list.size() > 0) {
- viewBinding.nullListTv.setVisibility(View.GONE);
- } else {
- viewBinding.nullListTv.setVisibility(View.VISIBLE);
- }
}
--
Gitblit v1.8.0