From 0a13476751c01ae346c30a4c4dd266bad700d2c3 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 07 三月 2024 13:28:45 +0800 Subject: [PATCH] 2024年03月07日13:28:38 --- app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 253 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 179 insertions(+), 74 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 2d5e97f..957a31c 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 @@ -2,11 +2,9 @@ import android.Manifest; import android.content.Context; -import android.content.Intent; import android.content.pm.PackageManager; import android.hardware.camera2.CameraManager; import android.os.Bundle; -import android.text.TextUtils; import android.view.View; import androidx.annotation.NonNull; @@ -16,23 +14,19 @@ 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.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.listener.CloudCallBeak; 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.HouseInfoAdapter; import com.hdl.photovoltaic.ui.bean.HouseIdBean; -import com.hdl.photovoltaic.ui.bean.HouseInfoBean; -import com.hdl.photovoltaic.ui.device.FastScanActivity; import com.hdl.photovoltaic.uni.HDLUniMP; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; @@ -45,15 +39,7 @@ * (浣忓畢)鐢电珯鍒楄〃-鐣岄潰 */ 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 boolean is_edit = false; private FragmentHouseListBinding viewBinding; private HouseInfoAdapter houseInfoAdapter; private CameraManager manager; @@ -75,32 +61,43 @@ initView(); //鍒濆鍖栫晫闈㈢洃鍚櫒 initEvent(); - - } private void initEvent() { - + viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (is_edit) { + is_edit = false; + } + viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.GONE); + initData();//鍒濆鍖栫紦瀛樻暟鎹� + setAllItemEdit(false); + houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃 + } + }); //娣诲姞鐢电珯 viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - requestPermissions(new PermissionsResultCallback() { - @Override - public void succeed() { + HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); +// requestPermissions(new PermissionsResultCallback() { +// @Override +// public void succeed() { +//// 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() { +// HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); +// } +// }); -// 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() { - } - }); } }); @@ -109,35 +106,114 @@ viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { - updateUIData(true); + downReadData(true); HdlLogLogic.print("HouseListFragment涓嬫媺鍒锋柊", false); } }); + //杩涘叆鐢电珯璇︽儏,鍒犻櫎鐢电珯,绉诲姩鐢电珯浣嶇疆 houseInfoAdapter.setNoOnclickListener(new HouseInfoAdapter.OnclickListener() { @Override public void onClick(int position, HouseIdBean houseIdBean) { //鐐瑰嚮浣忓畢璇︽儏 - HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏===" + new Gson().toJson(houseIdBean), false); + 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() - + "&serverAddress=" + AppConfigManage.getUserRegionUrl(); + + "&powerStationStatus=" + houseIdBean.getPowerStationStatus(); HdlUniLogic.getInstance().openUniMP(path, null); + } + + @Override + public void onMoveClick(int position, HouseIdBean houseIdBean) { + if (position > 0) { + houseInfoAdapter.notifyItemMoved(position - 1, position); + } +// //绉诲姩鐢电珯浣嶇疆 +// HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId()); +// initData();//鍒濆鍖栫紦瀛樻暟鎹� +// houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃 +// nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌� + + } + + @Override + public void onDelClick(int position, HouseIdBean houseIdBean) { + + HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId()); + initData();//鍒濆鍖栫紦瀛樻暟鎹� + houseInfoAdapter.notifyItemRemoved(position); + +// DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity); +// delayedConfirmationCancelDialog.setTitle(R.string.loading_title_tip); +// delayedConfirmationCancelDialog.setContent("鏄惁纭鍒犻櫎鐢电珯?"); +// delayedConfirmationCancelDialog.show(); +// delayedConfirmationCancelDialog.startCountdown(3); +// delayedConfirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { +// @Override +// public void Confirm() { +// //鍒犻櫎浣忓畢 +// HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() { +// @Override +// public void onSuccess(Boolean obj) { +// HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId()); +// initData();//鍒濆鍖栫紦瀛樻暟鎹� +// setAllItemEdit(is_edit); +// houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃 +// nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌� +// delayedConfirmationCancelDialog.dismiss(); +// } +// +// @Override +// public void onFailure(HDLException e) { +// HdlThreadLogic.toast(_mActivity, e); +// } +// }); +// } +// }); +// delayedConfirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { +// @Override +// public void Cancel() { +// delayedConfirmationCancelDialog.dismiss(); +// } +// }); + + } + }); + + //缂栬緫鐢电珯鎸夐挳 + viewBinding.toolbarTopFragmentHouseListRl.topEditIv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (is_edit) { + //闃叉澶氭鐐瑰嚮 + return; + } + is_edit = true; + viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE); + if (houseInfoAdapter == null) { + return; + } + initData();//鍒濆鍖栫紦瀛樻暟鎹� + setAllItemEdit(true); + houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃 } }); } private void initView() { viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.my_power_station); + viewBinding.toolbarTopFragmentHouseListRl.topEditIv.setVisibility(View.VISIBLE); + viewBinding.toolbarTopFragmentHouseListRl.topEditIv.setImageResource(R.drawable.editor_house); viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setVisibility(View.VISIBLE); viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setImageResource(R.drawable.add); LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity); - houseInfoAdapter = new HouseInfoAdapter(this.houseListBeanIDList, _mActivity); + houseInfoAdapter = new HouseInfoAdapter(_mActivity); viewBinding.fragmentHouseSrlListRc.setLayoutManager(linearLayout); viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter); + houseInfoAdapter.setList(this.houseListBeanIDList); + this.nullDataUpdateUi(houseListBeanIDList); } @@ -158,7 +234,7 @@ if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(eventBus.getTopic())) { if (HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION.equals(eventBus.getType())) { //uin鍒涘缓鐢电珯鎴愬姛鍚庨�氱煡 - updateUIData(false); + downReadData(false); if (eventBus.getData() != null) { Gson gson = new Gson(); String json = eventBus.getData().toString(); @@ -167,27 +243,28 @@ } } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT.equals(eventBus.getType())) { + //todo 鐜板湪榛樿鍒锋柊鍏ㄩ儴 //uin缂栬緫浣忓畢閫氱煡 - String homeId = HdlUniLogic.getInstance().getKeyValue("homeId", eventBus.getData()); - String home_name = HdlUniLogic.getInstance().getKeyValue("powerStationName", eventBus.getData()); - if (TextUtils.isEmpty(homeId) || TextUtils.isEmpty(home_name)) { - return; - } - int index = -1; - for (int i = 0; i < houseListBeanIDList.size(); i++) { - HouseIdBean houseIdBean = houseListBeanIDList.get(i); - if (houseIdBean.getHomeId().equals(homeId)) { - index = i; - houseIdBean.setHomeName(home_name); - break; - } - } - if (index > -1) { - if (houseInfoAdapter != null) { - //鏇存柊鍗曚釜鏁版嵁 - houseInfoAdapter.notifyItemChanged(index); - } - } +// String homeId = HdlUniLogic.getInstance().getKeyValue("homeId", eventBus.getData()); +// String home_name = HdlUniLogic.getInstance().getKeyValue("powerStationName", eventBus.getData()); +// if (TextUtils.isEmpty(homeId) || TextUtils.isEmpty(home_name)) { +// return; +// } +// int index = -1; +// for (int i = 0; i < houseListBeanIDList.size(); i++) { +// HouseIdBean houseIdBean = houseListBeanIDList.get(i); +// if (houseIdBean.getHomeId().equals(homeId)) { +// index = i; +// houseIdBean.setHomeName(home_name); +// break; +// } +// } +// if (index > -1) { +// if (houseInfoAdapter != null) { +// //鏇存柊鍗曚釜鏁版嵁 +// houseInfoAdapter.notifyItemChanged(index); +// } +// } } @@ -196,20 +273,34 @@ if (MqttRecvClient.getInstance() != null) { MqttRecvClient.getInstance().removeAllTopic(); } + downReadData(false); + } 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().size(); i++) { + //String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList().get(i).getGatewayId(); + //瀛楃涓叉槸鑷繁鎸夎鍒欐嫾鎺ョ殑,閲岄潰娉ㄥ唽涓婚鏃朵細瑙f瀽瀛楃涓�,鍙嬁getGatewayId()鍊�; + //String topic = "/user/" + gatewayId+"/1"; + //杩涘幓浣忓畢璇︽儏寮�濮嬭闃呬富棰� + MqttRecvClient.getInstance().checkAndsubscribeAllTopics(""); +// } } else if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) { //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢 - if (eventBus.getType().equals(HdlCommonLogic.HomepageTitleTabSwitch.powerstation.toString())) { + if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) { HdlLogLogic.print("姝e湪鐐瑰嚮銆愮數绔欍��"); } + } + } + + + /** + * 璁剧疆鍏ㄩ儴缂撳瓨鏁版嵁缂栬緫鐘舵�� + * + * @param edit true琛ㄧず鍦ㄧ紪杈戠姸鎬� + */ + private void setAllItemEdit(boolean edit) { + for (int i = 0; i < houseListBeanIDList.size(); i++) { + houseListBeanIDList.get(i).setEdit(edit); } } @@ -218,7 +309,7 @@ * * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑 */ - private void updateUIData(boolean isRefreshing) { + private void downReadData(boolean isRefreshing) { //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃 HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() { @Override @@ -234,12 +325,14 @@ //鏇存柊缂撳瓨 HdlResidenceLogic.getInstance().setHouseIdList(list); if (houseInfoAdapter != null) { + initData(); + setAllItemEdit(is_edit); //鏇存柊UI - houseInfoAdapter.setList(list); - houseInfoAdapter.notifyDataSetChanged(); + houseInfoAdapter.setList(houseListBeanIDList); } } + nullDataUpdateUi(list); } }, _mActivity, ShowErrorMode.YES); @@ -269,10 +362,7 @@ mPermissionsResultCallback = permissionsResultCallback; - String[] s = new String[]{ - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - }; + String[] s = new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CAMERA,}; String[] ary = PermissionUtils.checkPermission(_mActivity, s); if (ary.length > 0) { requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); @@ -292,6 +382,10 @@ if (mPermissionsResultCallback != null) { mPermissionsResultCallback.succeed(); } + } else { + if (mPermissionsResultCallback != null) { + mPermissionsResultCallback.failing(); + } } } @@ -310,4 +404,15 @@ } + /** + * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮� + */ + 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); + } + + } -- Gitblit v1.8.0