| | |
| | | import static com.hdl.photovoltaic.ui.home.aachart.CustomStyleChartComposer.configureColorfulColumnChart; |
| | | |
| | | import android.os.Bundle; |
| | | import android.os.Handler; |
| | | import android.os.Message; |
| | | import android.os.SystemClock; |
| | | import android.text.SpannableString; |
| | | import android.text.Spanned; |
| | | import android.text.TextUtils; |
| | | import android.text.style.AbsoluteSizeSpan; |
| | | import android.text.style.ClickableSpan; |
| | | import android.text.style.ForegroundColorSpan; |
| | | import android.text.style.StyleSpan; |
| | | import android.view.View; |
| | | import android.view.ViewGroup; |
| | | |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.appcompat.content.res.AppCompatResources; |
| | | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; |
| | | |
| | |
| | | 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.enums.UnitType; |
| | | 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.HdlPowerStationDataStatisticsLogic; |
| | | import com.hdl.photovoltaic.other.HdlResidenceLogic; |
| | |
| | | import com.hdl.photovoltaic.ui.home.aachart.BasicChartComposer; |
| | | import com.hdl.photovoltaic.uni.HDLUniMP; |
| | | import com.hdl.photovoltaic.utils.TimeUtils; |
| | | import com.hdl.photovoltaic.utils.UnitConversionUtils; |
| | | import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; |
| | | |
| | | import org.greenrobot.eventbus.EventBus; |
| | | import org.greenrobot.eventbus.Subscribe; |
| | | import org.greenrobot.eventbus.ThreadMode; |
| | | |
| | | import java.lang.ref.WeakReference; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | 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.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.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000)); |
| | | viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF)); |
| | | |
| | | viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_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.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000)); |
| | | viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF)); |
| | | |
| | | viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_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.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000)); |
| | | viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_66FFFFFF)); |
| | | |
| | | viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_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); |
| | |
| | | }).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(); |
| | | } |
| | |
| | | } else if (TimeType.month.equals(timeType) || TimeType.year.equals(timeType) || TimeType.all.equals(timeType)) { |
| | | aaChartModel = configureColorfulColumnChart(getString(R.string.generation), fieldNames, fieldValues); |
| | | } |
| | | |
| | | |
| | | if(needDelay) { |
| | | viewBinding.autoSizeMyAAChart.setX(10000);//直接打开有闪屏,在不显示的地方先显示,再移动到正常的位置。TODO 后续找到根源问题后去掉这个用法 |
| | | aaChartView.aa_drawChartWithChartOptions(aaChartModel.aa_toAAOptions()); |
| | | mHandler.sendEmptyMessageDelayed(100,800); |
| | | } |
| | | else{ |
| | | aaChartView.aa_drawChartWithChartOptions(aaChartModel.aa_toAAOptions()); |
| | | } |
| | | } |
| | | |
| | | FHandler mHandler=new FHandler(this); |
| | | |
| | | private static class FHandler extends Handler{ |
| | | //定义弱引用实例 |
| | | private WeakReference<HomePageFragment> reference; |
| | | |
| | | //在构造方法中传入需要持有的fragment实例 |
| | | public FHandler(HomePageFragment fragment) { |
| | | reference = new WeakReference<HomePageFragment>(fragment); } |
| | | |
| | | //通过复写handlerMessage()从而决定如何进行更新UI操作 |
| | | @Override |
| | | public void handleMessage(Message msg) { |
| | | //省略代码 |
| | | |
| | | switch (msg.what){ |
| | | case 100: |
| | | if(reference.get()!=null) { |
| | | reference.get().viewBinding.autoSizeMyAAChart.setX(0);//移动到正确的位置 |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | aaChartView.aa_drawChartWithChartOptions(aaChartModel.aa_toAAOptions()); |
| | | } |
| | | |
| | | @Override |
| | | public void onDestroy() { |
| | | super.onDestroy(); |
| | | mHandler.removeCallbacksAndMessages(null); |
| | | } |
| | | |
| | | private void initView() { |
| | |
| | | viewBinding.unitTv.setText(UnitType.kW); |
| | | |
| | | |
| | | viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_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_66FFFFFF)); |
| | |
| | | viewBinding.v2.setVisibility(View.VISIBLE); |
| | | viewBinding.v3.setVisibility(View.VISIBLE); |
| | | viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE); |
| | | viewBinding.autoSizeMyAAChart.setBackgroundColor(_mActivity.getColor(R.color.text_FF1C1C1E)); |
| | | setUpAAChartView(true);//图表加载 |
| | | } |
| | | |
| | |
| | | } |
| | | viewBinding.stationAllTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal())); |
| | | viewBinding.stationFaultsTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault())); |
| | | viewBinding.stationOfflineTitleTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline())); |
| | | viewBinding.stationOfflineTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline())); |
| | | viewBinding.stationConnectedTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting())); |
| | | } |
| | | |