wjc
2025-01-13 3c18f8e5f2d54c6cb2e4d2e0e5fc538a6a2ea188
app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -3,12 +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.os.SystemClock;
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;
@@ -19,17 +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.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlDialogLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlPowerStationDataStatisticsLogic;
import com.hdl.photovoltaic.other.HdlResidenceLogic;
@@ -41,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;
@@ -51,6 +65,7 @@
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -111,37 +126,43 @@
        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);
                    }
                });
            }
        });
        //全部
        viewBinding.homeAllIl.parentLl.setOnClickListener(new View.OnClickListener() {
        viewBinding.homeAllIl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.All);
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.All);
            }
        });
        //故障
        viewBinding.homeFaultsIl.parentLl.setOnClickListener(new View.OnClickListener() {
        viewBinding.homeFaultsIl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.malfunction);
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.malfunction);
            }
        });
        //离线
        viewBinding.homeOfflineIl.parentLl.setOnClickListener(new View.OnClickListener() {
        viewBinding.homeOfflineIl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.off);
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.off);
            }
        });
        //待接入
        viewBinding.homeConnectedIl.parentLl.setOnClickListener(new View.OnClickListener() {
        viewBinding.homeConnectedIl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.connecting);
                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch, ConstantManage.station_page, PowerStationStatus.connecting);
            }
        });
        //时间选择器
@@ -163,17 +184,17 @@
                timeType = TimeType.day;
                viewBinding.unitTv.setText(UnitType.kW);
                viewBinding.unitTextTv.setText(getString(R.string.pv_power));
                viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_38C494));
                viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_39383d));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_E6FFFFFF));
                viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.v1.setVisibility(View.GONE);
                viewBinding.v2.setVisibility(View.VISIBLE);
@@ -198,16 +219,16 @@
                viewBinding.unitTv.setText(UnitType.kWh);
                viewBinding.unitTextTv.setText(getString(R.string.generation));
                viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_38C494));
                viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_39383d));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_E6FFFFFF));
                viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.v1.setVisibility(View.GONE);
                viewBinding.v2.setVisibility(View.GONE);
@@ -232,16 +253,16 @@
                viewBinding.unitTv.setText(UnitType.kWh);
                viewBinding.unitTextTv.setText(getString(R.string.generation));
                viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_38C494));
                viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_39383d));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_E6FFFFFF));
                viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.v1.setVisibility(View.VISIBLE);
                viewBinding.v2.setVisibility(View.GONE);
@@ -264,16 +285,16 @@
                viewBinding.unitTv.setText(UnitType.kWh);
                viewBinding.unitTextTv.setText(getString(R.string.generation));
                viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
                viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
                viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_38C494));
                viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_39383d));
                viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_E6FFFFFF));
                viewBinding.v1.setVisibility(View.VISIBLE);
                viewBinding.v2.setVisibility(View.VISIBLE);
@@ -312,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;
                }
@@ -332,6 +355,7 @@
    }
    /**
     * 时间选择器
@@ -370,23 +394,23 @@
        }).setType(new boolean[]{year, month, day, false, false, false})// 默认全部显示
                .setCancelText(_mActivity.getString(R.string.loading_cancel))//取消按钮文字
                .setSubmitText(_mActivity.getString(R.string.loading_affirm))//确认按钮文字
                .setContentTextSize(18)//滚轮文字大小
                .setTitleSize(18)//标题文字大小
                .setTitleText(_mActivity.getString(R.string.time_selectd))//标题文字
                .setContentTextSize(16)//滚轮文字大小
//                .setTitleSize(18)//标题文字大小
//                .setTitleText(_mActivity.getString(R.string.time_selectd))//标题文字
                .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
                .isCyclic(false)//是否循环滚动
                .setTitleColor(_mActivity.getColor(R.color.text_E6000000))//标题文字颜色
                .setSubmitColor(_mActivity.getColor(R.color.text_38C494))//确定按钮文字颜色
                .setCancelColor(_mActivity.getColor(R.color.text_66000000))//取消按钮文字颜色
                .setTitleBgColor(_mActivity.getColor(R.color.text_FFFFFFFF))//标题背景颜色 Night mode
                .setBgColor(_mActivity.getColor(R.color.text_FFFFFFFF))//滚轮背景颜色 Night mode
                .setTextColorCenter(_mActivity.getColor(R.color.text_E6000000)).setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
//                .setTitleColor(_mActivity.getColor(R.color.text_E6FFFFFF))//标题文字颜色
                .setSubmitColor(_mActivity.getColor(R.color.text_E6FFFFFF))//确定按钮文字颜色
                .setCancelColor(_mActivity.getColor(R.color.text_FF8E8E8E))//取消按钮文字颜色
                .setTitleBgColor(_mActivity.getColor(R.color.text_FF222222))//标题背景颜色 Night mode
                .setBgColor(_mActivity.getColor(R.color.text_FF222222))//滚轮背景颜色 Night mode
                .setTextColorCenter(_mActivity.getColor(R.color.text_E6FFFFFF)).setDate(selectedDate)// 如果不设置的话,默认是系统时间*/
                .setRangDate(startDate, endDate)//起始终止年月日设定
                .setLabel(_mActivity.getString(R.string.year), _mActivity.getString(R.string.month), _mActivity.getString(R.string.day), _mActivity.getString(R.string.hour), _mActivity.getString(R.string.minute), _mActivity.getString(R.string.seconds))//默认设置为年月日时分秒
                .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
                .isDialog(false)//是否显示为对话框样式
                .setItemVisibleCount(7)//对话框高度
                .setDividerColor(_mActivity.getColor(R.color.text_E1E1E1)).setLineSpacingMultiplier(3f)//
                .setDividerColor(_mActivity.getColor(R.color.text_1AFFFFFF)).setLineSpacingMultiplier(3f)//
                .build();
        pvTime.show();
    }
@@ -394,7 +418,7 @@
    /**
     * 图表加载
     */
    private void setUpAAChartView() {
    private void setUpAAChartView(boolean needDelay) {
        aaChartView = viewBinding.autoSizeMyAAChart;
        aaChartView.callBack = this;
        if (TimeType.day.equals(timeType)) {
@@ -402,47 +426,48 @@
        } else if (TimeType.month.equals(timeType) || TimeType.year.equals(timeType) || TimeType.all.equals(timeType)) {
            aaChartModel = configureColorfulColumnChart(getString(R.string.generation), fieldNames, fieldValues);
        }
        aaChartView.aa_drawChartWithChartModel(aaChartModel);
        aaChartView.aa_drawChartWithChartOptions(aaChartModel.aa_toAAOptions());
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
    }
    private void initView() {
        viewBinding.homeAllIl.stationTitleTv.setText(getString(R.string.message_all));
        viewBinding.homeFaultsIl.stationTitleTv.setText(getString(R.string.my_power_station_malfunction));
        viewBinding.homeOfflineIl.stationTitleTv.setText(getString(R.string.my_power_station_off_line));
        viewBinding.homeConnectedIl.stationTitleTv.setText(getString(R.string.to_be_added));
        String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType));
        viewBinding.yearMonthDayTv.setText(dataStr);
        String installed_capacity = getString(R.string.string_capacity) + "(" + UnitType.kWp + ")";
        viewBinding.infoRl1Text2Tv.setText(installed_capacity);
        String generated_power = getString(R.string.generated_power) + "(" + UnitType.kW + ")";
        viewBinding.infoRl1Text4Tv.setText(generated_power);
        String generation = getString(R.string.generation) + "(" + UnitType.kWh + ")";
        viewBinding.homePageStationInfoRl1TitleTv.setText(generation);
//        String installed_capacity = getString(R.string.string_capacity) + "(" + UnitType.kWp + ")";
//        viewBinding.infoRl1Text2Tv.setText(installed_capacity);
//        String generated_power = getString(R.string.generated_power) + "(" + UnitType.kW + ")";
//        viewBinding.infoRl1Text4Tv.setText(generated_power);
//        String generation = getString(R.string.generation) + "/" + UnitType.kWh;
//        viewBinding.homePageStationInfoRl1TitleTv.setText(generation);
        viewBinding.homePageStationInfoRl2DayIc.dataTypeTv.setText(R.string.day_power_generation);
        viewBinding.homePageStationInfoRl2MonIc.dataTypeTv.setText(R.string.month_power_generation);
        viewBinding.homePageStationInfoRl2YearIc.dataTypeTv.setText(R.string.year_power_generation);
        viewBinding.homePageStationInfoRl2CumulativeIc.dataTypeTv.setText(R.string.cumulative_power_generation);
//        viewBinding.day.setText(R.string.day_power_generation);
//        viewBinding.month.setText(R.string.month_power_generation);
//        viewBinding.year.setText(R.string.year_power_generation);
//        viewBinding.Total.setText(R.string.cumulative_power_generation);
//
        viewBinding.unitTv.setText(UnitType.kW);
        viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
        viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_38C494));
        viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_39383d));
        viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_E6FFFFFF));
        viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
        viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
        viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
        viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
        viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
        viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
        viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
        viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66000000));
        viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF));
        viewBinding.v1.setVisibility(View.GONE);
        viewBinding.v2.setVisibility(View.VISIBLE);
        viewBinding.v3.setVisibility(View.VISIBLE);
        viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
        setUpAAChartView();//图表加载
        viewBinding.autoSizeMyAAChart.setBackgroundColor(_mActivity.getColor(R.color.text_FF1C1C1E));
        setUpAAChartView(true);//图表加载
    }
@@ -484,10 +509,10 @@
                if (statusOverviewBean == null) {
                    return;
                }
                viewBinding.homeAllIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal()));
                viewBinding.homeFaultsIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault()));
                viewBinding.homeOfflineIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline()));
                viewBinding.homeConnectedIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting()));
                viewBinding.stationAllTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal()));
                viewBinding.stationFaultsTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault()));
                viewBinding.stationOfflineTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline()));
                viewBinding.stationConnectedTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting()));
            }
            @Override
@@ -512,14 +537,46 @@
                        if (dataOverBean == null) {
                            return;
                        }
                        viewBinding.infoRl1Text1Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getInstalledCapacity()));
                        viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getPower(), UnitType.kW, false));
                        viewBinding.infoRl1FText1Tv.setText(dataOverBean.getPowerRatio());
                        String capacityValue = HdlCommonLogic.getBigDecimal(dataOverBean.getInstalledCapacity()).toString();
                        viewBinding.infoRl1Text1Tv.setText(capacityValue);
                        viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getPower()));
                        viewBinding.homePageStationInfoRl2DayIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getTodayElectricity()));
                        viewBinding.homePageStationInfoRl2MonIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getMonthElectricity()));
                        viewBinding.homePageStationInfoRl2YearIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getYearElectricity()));
                        viewBinding.homePageStationInfoRl2CumulativeIc.dataTv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getTotalElectricity()));
//                        String str = dataOverBean.getPowerRatio() + "%";
//                        int startIndex = str.lastIndexOf("%");
//                        int endIndex = str.lastIndexOf("%") + 1;
//                        SpannableString spannableString = new SpannableString(str);
//                        //设置第一部分文字的字体大小
//                        spannableString.setSpan(new AbsoluteSizeSpan((int) UnitConversionUtils.dpToPx(HDLApp.getInstance(), 12)), startIndex, endIndex, 0);
//                        // 创建一个ForegroundColorSpan对象,参数是颜色值
//                        ForegroundColorSpan colorSpan = new ForegroundColorSpan(HDLApp.getInstance().getColor(R.color.text_66FFFFFF));
//                        spannableString.setSpan(colorSpan, startIndex, endIndex, 0);
//                        viewBinding.infoRl1FText1Tv.setText(spannableString);
                        viewBinding.infoRl1FText1Tv.setText(dataOverBean.getPowerRatio());
                        try {
                            int progress = 0;
                            if (!TextUtils.isEmpty(dataOverBean.getPowerRatio())) {
                                progress = (int) Double.parseDouble(dataOverBean.getPowerRatio());
                                if (progress > 100) {
                                    progress = 100;
                                }
                                if (progress < 0) {
                                    progress = 0;
                                }
                                viewBinding.progressBar.setProgress(progress);
                            }
                        } catch (Exception ignored) {
                        }
                        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));
                    }
                });
            }
@@ -550,14 +607,14 @@
                        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());
                            }
                        }
                        fieldNames = keys;
                        fieldValues = values;
                        setUpAAChartView();
                        setUpAAChartView(false);
                    }
                });
@@ -592,5 +649,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() {
        // 初始化LocationManager对象
        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();
                }
            });
        }
    }
}