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 | 191 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 138 insertions(+), 53 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 56f3bdc..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,24 +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; @@ -46,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; @@ -76,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() { - } - }); } }); @@ -110,10 +106,11 @@ 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) { @@ -123,24 +120,99 @@ 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); @@ -162,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(); @@ -201,7 +273,7 @@ if (MqttRecvClient.getInstance() != null) { MqttRecvClient.getInstance().removeAllTopic(); } - updateUIData(false); + downReadData(false); } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) { //杩涘幓浣忓畢璇︽儏uni璇诲彇閫嗗彉鍣ㄥ垪琛ㄦ垚鍔熷悗閫氱煡 @@ -220,12 +292,24 @@ } } + + /** + * 璁剧疆鍏ㄩ儴缂撳瓨鏁版嵁缂栬緫鐘舵�� + * + * @param edit true琛ㄧず鍦ㄧ紪杈戠姸鎬� + */ + private void setAllItemEdit(boolean edit) { + for (int i = 0; i < houseListBeanIDList.size(); i++) { + houseListBeanIDList.get(i).setEdit(edit); + } + } + /** * 鍒锋柊UI * * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑 */ - private void updateUIData(boolean isRefreshing) { + private void downReadData(boolean isRefreshing) { //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃 HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() { @Override @@ -241,9 +325,10 @@ //鏇存柊缂撳瓨 HdlResidenceLogic.getInstance().setHouseIdList(list); if (houseInfoAdapter != null) { + initData(); + setAllItemEdit(is_edit); //鏇存柊UI - houseInfoAdapter.setList(list); - houseInfoAdapter.notifyDataSetChanged(); + houseInfoAdapter.setList(houseListBeanIDList); } } @@ -277,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); @@ -299,6 +381,10 @@ if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { if (mPermissionsResultCallback != null) { mPermissionsResultCallback.succeed(); + } + } else { + if (mPermissionsResultCallback != null) { + mPermissionsResultCallback.failing(); } } @@ -322,11 +408,10 @@ * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮� */ private void nullDataUpdateUi(List<HouseIdBean> list) { - if (list != null && list.size() > 0) { - viewBinding.nullListTv.setVisibility(View.GONE); - } else { - viewBinding.nullListTv.setVisibility(View.VISIBLE); - } + 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