From 949a7a45dd70e89531f121e9fcaee0d911f176e0 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 19 三月 2025 16:48:18 +0800 Subject: [PATCH] 2025年03月19日16:48:04 --- app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java | 135 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 122 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java index b248974..6bb5011 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java @@ -3,11 +3,19 @@ import static com.hdl.photovoltaic.ui.home.aachart.CustomStyleChartComposer.configureColorfulColumnChart; +import android.Manifest; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.location.LocationManager; import android.os.Bundle; +import android.provider.Settings; import android.text.TextUtils; +import android.util.Log; import android.view.View; +import androidx.annotation.NonNull; import androidx.appcompat.content.res.AppCompatResources; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -18,16 +26,20 @@ import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartView; import com.github.AAChartModel.AAChartCore.AAChartCreator.AAMoveOverEventMessageModel; import com.hdl.linkpm.sdk.core.exception.HDLException; +import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseFragment; import com.hdl.photovoltaic.config.ConstantManage; +import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.FragmentHomePageBinding; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.enums.PowerStationStatus; import com.hdl.photovoltaic.enums.TimeType; import com.hdl.photovoltaic.enums.UnitType; import com.hdl.photovoltaic.listener.CloudCallBeak; +import com.hdl.photovoltaic.listener.OnCallBeak; import com.hdl.photovoltaic.other.HdlCommonLogic; +import com.hdl.photovoltaic.other.HdlDialogLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlPowerStationDataStatisticsLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; @@ -39,7 +51,11 @@ import com.hdl.photovoltaic.ui.bean.StatusOverviewBean; import com.hdl.photovoltaic.ui.home.aachart.BasicChartComposer; import com.hdl.photovoltaic.uni.HDLUniMP; +import com.hdl.photovoltaic.utils.GPSManagerUtils; +import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.utils.TimeUtils; +import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; +import com.hdl.photovoltaic.widget.FlashingBoxDialog; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import org.greenrobot.eventbus.EventBus; @@ -49,6 +65,7 @@ import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; /** @@ -109,7 +126,13 @@ viewBinding.homePageStationAddIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); + requestPermissions(new OnCallBeak() { + @Override + public void onClickCallBeak() { +// UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); +// HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); + } + }); } }); @@ -117,7 +140,7 @@ viewBinding.homeAllIl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.All); + HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.All); } }); @@ -125,21 +148,21 @@ viewBinding.homeFaultsIl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.malfunction); + HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.malfunction); } }); //绂荤嚎 viewBinding.homeOfflineIl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.off); + HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.off); } }); //寰呮帴鍏� viewBinding.homeConnectedIl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.connecting); + HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.connecting); } }); //鏃堕棿閫夋嫨鍣� @@ -310,7 +333,9 @@ Calendar calendar = TimeUtils.stringToCalendar(currDate, timeDateFormat); String time = TimeUtils.addDayMonthYearToDate(calendar, 1, timeDateFormat, timeType); if (TimeUtils.stringDateToTimestamp(time, timeDateFormat) > TimeUtils.getCurrentTimestamp()) { - HdlThreadLogic.toast(_mActivity, getString(R.string.the_query_date_is_exceeded)); + FlashingBoxDialog flashingBoxDialog = new FlashingBoxDialog(_mActivity, 1500); + flashingBoxDialog.setContent(getString(R.string.the_query_date_is_exceeded)); + flashingBoxDialog.show(); return; } @@ -330,6 +355,7 @@ } + /** * 鏃堕棿閫夋嫨鍣� @@ -511,8 +537,10 @@ if (dataOverBean == null) { return; } - viewBinding.infoRl1Text1Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getInstalledCapacity())); - viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getPower(), UnitType.kW, false)); + String capacityValue = HdlCommonLogic.divideByOneThousandAndFormat(dataOverBean.getInstalledCapacity()).toString(); + viewBinding.infoRl1Text1Tv.setText(capacityValue); + viewBinding.kwpUnit.setText(HdlCommonLogic.convertWPUnit(dataOverBean.getInstalledCapacity())); + viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getPower())); // String str = dataOverBean.getPowerRatio() + "%"; // int startIndex = str.lastIndexOf("%"); @@ -541,10 +569,14 @@ } catch (Exception ignored) { } - viewBinding.day.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getTodayElectricity())); - viewBinding.month.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getMonthElectricity())); - viewBinding.year.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getYearElectricity())); - viewBinding.Total.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getTotalElectricity())); + viewBinding.day.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getTodayElectricity())); + viewBinding.dayUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getTodayElectricity(), UnitType.kWh)); + viewBinding.month.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getMonthElectricity())); + viewBinding.monthUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getMonthElectricity(), UnitType.kWh)); + viewBinding.year.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getYearElectricity())); + viewBinding.yearUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getYearElectricity(), UnitType.kWh)); + viewBinding.Total.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getTotalElectricity())); + viewBinding.TotalUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getTotalElectricity(), UnitType.kWh)); } }); @@ -576,7 +608,7 @@ for (int i = 0; i < list.size(); i++) { keys[i] = list.get(i).getFieldName(); if (TimeType.day.equals(timeType)) { - values[i] = HdlCommonLogic.divideByOneThousandAndFormat(list.get(i).getFieldValue());// HdlCommonLogic.getBigDecimal(list.get(i).getFieldValue()).intValue();//鑾峰彇鏁存暟閮ㄥ垎 + values[i] = HdlCommonLogic.convertBigDecimal(list.get(i).getFieldValue(), 1000);// HdlCommonLogic.getBigDecimal(list.get(i).getFieldValue()).intValue();//鑾峰彇鏁存暟閮ㄥ垎 } else { values[i] = HdlCommonLogic.getBigDecimal(list.get(i).getFieldValue()); } @@ -618,5 +650,82 @@ }); } + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == PermissionUtils.STATUS_SUCCESS) { + for (int i = 0; i < permissions.length; i++) { + if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { + switch (permissions[i]) { + case Manifest.permission.ACCESS_FINE_LOCATION: { + UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); + HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); + locationUpdates(); + } + break; + } + } else { + HdlDialogLogic.getInstance().showSettingPermissionDialog(_mActivity, _mActivity.getString(R.string.set_location_permissions)); + break; + } + + } + } + + } + + public void requestPermissions(OnCallBeak onCallBeak) { + + //ACCESS_FINE_LOCATION 鍏佽浣跨敤GPS瀹氫綅 + //ACCESS_COARSE_LOCATION 鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣� + String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}); + if (ary.length > 0) { + this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS); + } else { + + UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1); + HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null); + locationUpdates(); + } +// if (onCallBeak != null) { +// onCallBeak.onClickCallBeak(); +// } + } + + /** + * 鍒濆鍖栥�愬紑鍚畾浣嶃�戝拰銆愪綅缃俊鎭�戞潈闄� + */ + private void locationUpdates() { + // 鍒濆鍖朙ocationManager瀵硅薄 + LocationManager locationManager = (LocationManager) _mActivity.getSystemService(Context.LOCATION_SERVICE); + GPSManagerUtils.getInstance().getLocation(_mActivity); + // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘 + if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { + // 鎻愮ず鐢ㄦ埛鎵撳紑瀹氫綅鍔熻兘鎴栬�呭紩瀵肩敤鎴峰幓绯荤粺璁剧疆椤甸潰鎵撳紑瀹氫綅鍔熻兘 + ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity); + confirmationCancelDialog.setContent(getString(R.string.system_positioning_switch)); + confirmationCancelDialog.setConfirmation(getString(R.string.go_to_settings)); + confirmationCancelDialog.show(); + confirmationCancelDialog.isHideTitle(true); + confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() { + @Override + public void Confirm() { + confirmationCancelDialog.dismiss(); + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + HDLApp.getInstance().startActivity(intent); + + } + }); + confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() { + @Override + public void Cancel() { + confirmationCancelDialog.dismiss(); + } + }); + + } + + } } -- Gitblit v1.8.0