From 88fa5aa9631b263e6e3d99d9ee787f73e78c6fda Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 17 五月 2024 14:54:53 +0800
Subject: [PATCH] 2024年05月17日14:54:51
---
app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java | 136 +++++---------
app/src/main/res/layout/fragment_home_page.xml | 18 +
app/src/main/res/values/strings.xml | 4
app/src/main/java/com/hdl/photovoltaic/other/HdlPowerStationDataStatisticsLogic.java | 18 +
app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java | 4
app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/CustomStyleChartComposer.java | 4
app/src/main/java/com/hdl/photovoltaic/utils/SpanUtils.java | 193 +++++++++++++++++++++
app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 34 +++
app/src/main/java/com/hdl/photovoltaic/ui/bean/StatisticsBean.java | 8
app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java | 64 ++++++
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java | 23 --
11 files changed, 371 insertions(+), 135 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
index c866afe..8569903 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -21,6 +21,8 @@
import java.io.InputStream;
import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Hashtable;
@@ -48,6 +50,37 @@
}
return sHdlCommonLogic;
+ }
+
+ public static String getConvertDoubleUnit(String value) {
+ if (TextUtils.isEmpty(value)) {
+ return HdlDeviceLogic.noValue ;
+ }
+ BigDecimal formattedValue = getBigDecimal(value);
+ return formattedValue.toString() ;
+
+ }
+
+ public static String getConvertDoubleUnit(int value) {
+ if (value == 0) {
+ return HdlDeviceLogic.noValue ;
+ }
+ BigDecimal formattedValue = getBigDecimal(value + "");
+ return formattedValue.toString() ;
+ }
+
+
+ public static String convertString(Object value) {
+ return String.valueOf(value);
+ }
+
+
+ public static BigDecimal getBigDecimal(String value) {
+ if (TextUtils.isEmpty(value)) {
+ return new BigDecimal(0);
+ }
+ double doubleValue = Double.parseDouble(value);
+ return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP);
}
@@ -131,7 +164,6 @@
}
}
-
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
index 59c99f1..4be1d77 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -82,30 +82,7 @@
private List<DeviceBean> mListDevice = new ArrayList<>();
- public static String getConvertDoubleUnit(String value) {
- if (TextUtils.isEmpty(value)) {
- return noValue + kWh;
- }
- BigDecimal formattedValue = getBigDecimal(value);
- return formattedValue + kWh;
- }
-
- public static String getConvertDoubleUnit(int value) {
- if (value == 0) {
- return noValue + kWh;
- }
- BigDecimal formattedValue = getBigDecimal(value + "");
- return formattedValue + kWh;
- }
-
- private static BigDecimal getBigDecimal(String value) {
- if (TextUtils.isEmpty(value)) {
- return new BigDecimal(0);
- }
- double doubleValue = Double.parseDouble(value);
- return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP);
- }
public void clearDeviceList() {
if (mListDevice == null) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlPowerStationDataStatisticsLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlPowerStationDataStatisticsLogic.java
index 2976c31..95928d5 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlPowerStationDataStatisticsLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlPowerStationDataStatisticsLogic.java
@@ -6,14 +6,19 @@
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.TimeType;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.api.HttpApi;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.ui.bean.DataOverBean;
import com.hdl.photovoltaic.ui.bean.SocialContributionBean;
import com.hdl.photovoltaic.ui.bean.StatisticsBean;
+import com.hdl.photovoltaic.utils.TimeUtils;
import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.List;
/**
@@ -38,6 +43,7 @@
}
return sHdlPowerStationDataStatisticsLogic;
}
+
/**
* 鑾峰彇缁熻姒傝鏁版嵁(鍏徃缁村害)
@@ -87,9 +93,19 @@
public void getStatistics(String type, String time, CloudCallBeak<List<StatisticsBean>> cloudCallBeak) {
String requestUrl = HttpApi.POST_Home_page_statistics;
JsonObject json = new JsonObject();
- json.addProperty("dataType", "GE");//鍙戠數閲�
+ json.addProperty("dataType", "GE");//鍙戠數閲忥紙GE 锛� 鍙戠數閲� ;POWER 锛� 鍙戠數鍔熺巼锛�
json.addProperty("type", type);//绫诲瀷
if (!TextUtils.isEmpty(time)) {
+ if (!UserConfigManage.getInstance().isZh()) {
+ //鑻辨枃鐨勬椂鍊欓渶瑕佹棩鏈熸牸寮�
+ if (TimeType.day.equals(type)) {
+ String[] ary = time.split("/");
+ time = ary[2] + "/" + ary[1] + "/" + ary[0];
+ } else if (TimeType.month.equals(type)) {
+ String[] ary = time.split("/");
+ time = ary[1] + "/" + ary[0];
+ }
+ }
json.addProperty("time", time);//鏃堕棿
}
//json.addProperty("zoneType", "password");//鍖哄煙
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/bean/StatisticsBean.java b/app/src/main/java/com/hdl/photovoltaic/ui/bean/StatisticsBean.java
index 39483f2..a8040cd 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/bean/StatisticsBean.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/bean/StatisticsBean.java
@@ -10,7 +10,7 @@
public class StatisticsBean implements Serializable {
private String fieldName;// 鎻忚堪
- private int fieldValue;//鍊�
+ private String fieldValue;//鍊�
private String time;// 鏃堕棿
public String getFieldName() {
@@ -21,11 +21,11 @@
this.fieldName = fieldName;
}
- public int getFieldValue() {
- return fieldValue;
+ public String getFieldValue() {
+ return fieldValue == null ? "" : fieldValue;
}
- public void setFieldValue(int fieldValue) {
+ public void setFieldValue(String fieldValue) {
this.fieldValue = fieldValue;
}
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 c048c81..6f08954 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
@@ -26,6 +26,7 @@
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
import com.hdl.photovoltaic.enums.TimeType;
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;
@@ -63,8 +64,8 @@
AAChartModel aaChartModel;
- private String[] fieldNames = {"00:00", "02:00", "05:00", "07:00", "09:00", "17:00", "22:00", "23:59"};//鍥炬爣X杞村潗鏍囧�肩殑鏁扮粍
- private Object[] fieldValues = {35, 70.5, 150.5, 135, 170, 205, 222, 245};//鍥炬爣Y杞村潗鏍囧�肩殑鏁扮粍
+ private String[] fieldNames = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"};//鍥炬爣X杞村潗鏍囧�肩殑鏁扮粍
+ private Object[] fieldValues = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};//鍥炬爣Y杞村潗鏍囧�肩殑鏁扮粍
private String timeType = TimeType.day;//鏃堕棿绫诲瀷(榛樿锛氬ぉ)
@@ -147,7 +148,7 @@
viewBinding.v3.setVisibility(View.VISIBLE);
viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
- String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
+ String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType));
viewBinding.yearMonthDayTv.setText(dataStr);
getStatistics();
@@ -178,7 +179,7 @@
viewBinding.v2.setVisibility(View.GONE);
viewBinding.v3.setVisibility(View.VISIBLE);
viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
- String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
+ String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType));
viewBinding.yearMonthDayTv.setText(dataStr);
getStatistics();
@@ -210,7 +211,7 @@
viewBinding.v2.setVisibility(View.GONE);
viewBinding.v3.setVisibility(View.GONE);
viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
- String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
+ String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType));
viewBinding.yearMonthDayTv.setText(dataStr);
getStatistics();
}
@@ -252,11 +253,11 @@
if (TextUtils.isEmpty(currDate)) {
return;
}
- String timeDateFormat = getTimeDateFormat();
+ String timeDateFormat = TimeUtils.getTimeDateFormat(timeType);
Calendar calendar = TimeUtils.stringToCalendar(currDate, timeDateFormat);
String time = TimeUtils.subtractDayMonthYearFromDate(calendar, 1, timeDateFormat, timeType);
viewBinding.yearMonthDayTv.setText(time);
-
+ getStatistics();
}
});
@@ -268,15 +269,16 @@
if (TextUtils.isEmpty(currDate)) {
return;
}
- String timeDateFormat = getTimeDateFormat();
+ String timeDateFormat = TimeUtils.getTimeDateFormat(timeType);
Calendar calendar = TimeUtils.stringToCalendar(currDate, timeDateFormat);
String time = TimeUtils.addDayMonthYearToDate(calendar, 1, timeDateFormat, timeType);
- if (TimeUtils.stringDateToTimestamp(time, timeDateFormat) > getCurrentTimestamp()) {
+ if (TimeUtils.stringDateToTimestamp(time, timeDateFormat) > TimeUtils.getCurrentTimestamp()) {
HdlThreadLogic.toast(_mActivity, getString(R.string.the_query_date_is_exceeded));
return;
}
viewBinding.yearMonthDayTv.setText(time);
+ getStatistics();
}
});
//璁剧疆涓嬫媺绠ご棰滆壊
@@ -298,9 +300,9 @@
private void selectedTimePickerBuilder() {
String currDate = viewBinding.yearMonthDayTv.getText().toString();
//鏃堕棿閫夋嫨鍣�
- Calendar selectedDate = TimeUtils.stringToCalendar(currDate, getTimeDateFormat());
+ Calendar selectedDate = TimeUtils.stringToCalendar(currDate, TimeUtils.getTimeDateFormat(timeType));
Calendar startDate = Calendar.getInstance();
- Calendar endDate = TimeUtils.timestampToCalendar(getCurrentTimestamp());
+ Calendar endDate = TimeUtils.timestampToCalendar(TimeUtils.getCurrentTimestamp());
//璁剧疆鏃ユ湡銆愬紑濮嬨�戝拰銆愮粨鏉熴��
startDate.set(2023, 1, 1);
endDate.set(endDate.get(Calendar.YEAR), endDate.get(Calendar.MONTH), endDate.get(Calendar.DAY_OF_MONTH));
@@ -316,7 +318,7 @@
TimePickerView pvTime = new TimePickerBuilder(_mActivity, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {//閫変腑浜嬩欢鍥炶皟
- String timeDateFormat = getTimeDateFormat();
+ String timeDateFormat = TimeUtils.getTimeDateFormat(timeType);
String time = TimeUtils.dateToString(date, timeDateFormat);
if (viewBinding.yearMonthDayTv.getText().toString().equals(time)) {
//琛ㄧず鍚屼竴涓椂闂�
@@ -356,11 +358,11 @@
aaChartView = viewBinding.autoSizeMyAAChart;
aaChartView.callBack = this;
if (TimeType.day.equals(timeType)) {
- aaChartModel = BasicChartComposer.configureAreaChart("Pv鍙戠數鍔熺巼", fieldNames, fieldValues);
+ aaChartModel = BasicChartComposer.configureAreaChart(getString(R.string.pv_power), fieldNames, fieldValues);
} else if (TimeType.month.equals(timeType)
|| TimeType.year.equals(timeType)
|| TimeType.all.equals(timeType)) {
- aaChartModel = configureColorfulColumnChart("Pv鍙戠數鍔熺巼", fieldNames, fieldValues);
+ aaChartModel = configureColorfulColumnChart(getString(R.string.pv_power), fieldNames, fieldValues);
}
aaChartView.aa_drawChartWithChartModel(aaChartModel);
@@ -374,7 +376,7 @@
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(getCurrentTimestamp(), getTimeDateFormat());
+ String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType));
viewBinding.yearMonthDayTv.setText(dataStr);
String installed_capacity = getString(R.string.installed_capacity) + "(" + HdlDeviceLogic.kWp + ")";
@@ -444,10 +446,10 @@
if (statusOverviewBean == null) {
return;
}
- viewBinding.homeAllIl.stationTotalTv.setText(statusOverviewBean.getTotal() + "");
- viewBinding.homeFaultsIl.stationTotalTv.setText(statusOverviewBean.getFault() + "");
- viewBinding.homeOfflineIl.stationTotalTv.setText(statusOverviewBean.getOffline() + "");
- viewBinding.homeConnectedIl.stationTotalTv.setText(statusOverviewBean.getConnecting() + "");
+ 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()));
}
@Override
@@ -462,6 +464,7 @@
* 鑾峰彇缁熻姒傝鏁版嵁(鍏徃缁村害)
*/
private void getDataOver() {
+
HdlPowerStationDataStatisticsLogic.getInstance().getDataOver(new CloudCallBeak<DataOverBean>() {
@Override
public void onSuccess(DataOverBean dataOverBean) {
@@ -471,14 +474,14 @@
if (dataOverBean == null) {
return;
}
- viewBinding.infoRl1Text1Tv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getInstalledCapacity()));
- viewBinding.infoRl1Text3Tv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getPower()));
+ viewBinding.infoRl1Text1Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getInstalledCapacity()));
+ viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.getConvertDoubleUnit(dataOverBean.getPower()));
viewBinding.infoRl1FText1Tv.setText(dataOverBean.getPowerRatio());
- viewBinding.homePageStationInfoRl2DayIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getTodayElectricity()));
- viewBinding.homePageStationInfoRl2MonIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getMonthElectricity()));
- viewBinding.homePageStationInfoRl2YearIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getYearElectricity()));
- viewBinding.homePageStationInfoRl2CumulativeIc.dataTv.setText(HdlDeviceLogic.getConvertDoubleUnit(dataOverBean.getTotalElectricity()));
+ 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()));
}
});
}
@@ -495,21 +498,27 @@
*/
private void getStatistics() {
String currDate = viewBinding.yearMonthDayTv.getText().toString();
- HdlPowerStationDataStatisticsLogic.getInstance().getStatistics(currDate, timeType, new CloudCallBeak<List<StatisticsBean>>() {
+ HdlPowerStationDataStatisticsLogic.getInstance().getStatistics(timeType, currDate, new CloudCallBeak<List<StatisticsBean>>() {
@Override
public void onSuccess(List<StatisticsBean> list) {
- if (list == null || list.size() == 0) {
- return;
- }
- String[] keys = new String[list.size()];
- Object[] values = new Object[list.size()];
- for (int i = 0; i < list.size(); i++) {
- keys[i] = list.get(i).getFieldName();
- values[i] = list.get(i).getFieldValue();
- }
- fieldNames = keys;
- fieldValues = values;
- setUpAAChartView();
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ if (list == null || list.size() == 0) {
+ return;
+ }
+ String[] keys = new String[list.size()];
+ Object[] values = new Object[list.size()];
+ for (int i = 0; i < list.size(); i++) {
+ keys[i] = list.get(i).getFieldName();
+ values[i] = HdlCommonLogic.getBigDecimal(list.get(i).getFieldValue()).intValue();//鑾峰彇鏁存暟閮ㄥ垎
+ }
+ fieldNames = keys;
+ fieldValues = values;
+ setUpAAChartView();
+ }
+ });
+
}
@Override
@@ -529,9 +538,9 @@
if (socialContributionBean == null) {
return;
}
- viewBinding.socialContributionData1Tv.setText(socialContributionBean.getCoal());
- viewBinding.socialContributionData2Tv.setText(socialContributionBean.getCo2());
- viewBinding.socialContributionData3Tv.setText(socialContributionBean.getTreePlanting());
+ viewBinding.socialContributionData1Tv.setText(HdlCommonLogic.convertString(HdlCommonLogic.getBigDecimal(socialContributionBean.getCoal())));
+ viewBinding.socialContributionData2Tv.setText(HdlCommonLogic.convertString(HdlCommonLogic.getBigDecimal(socialContributionBean.getCo2())));
+ viewBinding.socialContributionData3Tv.setText(HdlCommonLogic.convertString(HdlCommonLogic.getBigDecimal(socialContributionBean.getTreePlanting())));
}
@Override
@@ -539,51 +548,6 @@
}
});
- }
-
-
- /**
- * 鑾峰彇褰撳墠绯荤粺鏃ユ湡鏃堕棿鎴�
- *
- * @return 鏃堕棿鎴�
- */
- private long getCurrentTimestamp() {
- return new Date().getTime();
- }
-
- /**
- * 鑾峰彇鏃ユ湡鏍煎紡 (2024/2/09,yyyy/DD/dd)
- *
- * @return 鏃ユ湡鏍煎紡 (2024/2/09,yyyy/DD/dd)
- */
- private String getTimeDateFormat() {
- String timeDateFormat = TimeUtils.zhDateYearMonthDayFormat;
- switch (timeType) {
- case TimeType.day: {
- timeDateFormat = TimeUtils.zhDateYearMonthDayFormat;
- if (!UserConfigManage.getInstance().isZh()) {
- timeDateFormat = TimeUtils.enDateYearMonthDayFormat;
- }
- }
- break;
- case TimeType.month: {
- timeDateFormat = TimeUtils.zhDateYearMonthFormat;
- if (!UserConfigManage.getInstance().isZh()) {
- timeDateFormat = TimeUtils.enDateYearMonthFormat;
- }
- }
- break;
- case TimeType.year:
- case TimeType.all: {
- timeDateFormat = TimeUtils.zhDateYearFormat;
- if (!UserConfigManage.getInstance().isZh()) {
- timeDateFormat = TimeUtils.enDateYearFormat;
- }
- }
- break;
-
- }
- return timeDateFormat;
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java
index 67d941a..9d9686f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/BasicChartComposer.java
@@ -56,7 +56,7 @@
.legendEnabled(false)
.markerRadius(0)
// .markerSymbol(AAChartSymbolType.Circle)
-// .markerSymbolStyle(AAChartSymbolStyleType.Normal)
+ .markerSymbolStyle(AAChartSymbolStyleType.Normal)
.chartType(AAChartType.Area)
.categories(new String[]{"涓�鏈�", "浜屾湀", "涓夋湀", "鍥涙湀", "浜旀湀", "鍏湀", "涓冩湀", "鍏湀", "涔濇湀", "鍗佹湀", "鍗佷竴鏈�", "鍗佷簩鏈�"})
.series(new AASeriesElement[]{element1});
@@ -95,7 +95,7 @@
// .markerSymbolStyle(AAChartSymbolStyleType.Normal)
.chartType(AAChartType.Area)
.categories(categories)
-// .zoomType(AAChartZoomType.None)//鎵嬪娍缂╂斁
+ .zoomType(AAChartZoomType.None)//鎵嬪娍缂╂斁
// .yAxisMax(500)
.yAxisMin(0)
.series(new AASeriesElement[]{element1});
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/CustomStyleChartComposer.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/CustomStyleChartComposer.java
index 102353a..d985836 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/CustomStyleChartComposer.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/aachart/CustomStyleChartComposer.java
@@ -195,12 +195,12 @@
.colorsTheme(new String[]{"#38C494",})
.categories(categories)
.xAxisLabelsEnabled(true)
- .zoomType(AAChartZoomType.XY)
+ .zoomType(AAChartZoomType.None)
.legendEnabled(false)
.series(new AASeriesElement[]{
new AASeriesElement()
// .color(linearGradientColor)
- .name("涓滀含")
+ .name(tipSuspendName)
.data(data)
// .colorByPoint(true)
.tooltip(new AATooltip().style(new AAStyle().backgroundColor("#FFFFFF").fontSize(25)))
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/SpanUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/SpanUtils.java
new file mode 100644
index 0000000..cf8ec0a
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/SpanUtils.java
@@ -0,0 +1,193 @@
+package com.hdl.photovoltaic.utils;
+
+import android.graphics.Paint;
+import android.graphics.Typeface;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextPaint;
+import android.text.style.BackgroundColorSpan;
+import android.text.style.ClickableSpan;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.MetricAffectingSpan;
+import android.text.style.RelativeSizeSpan;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+
+
+/**
+ * String瀛楃涓查�氳繃鍖洪棿鏉ユ敼鍙橀鑹诧紝澶у皬锛屽瓧浣擄紝涓嬪垝绾跨瓑
+ */
+public class SpanUtils {
+
+ private long mLastClickTime = 0;
+ public static final int TIME_INTERVAL = 1000;
+
+
+ private static volatile SpanUtils sSpanUtils;
+
+
+ /**
+ * 鑾峰彇褰撳墠瀵硅薄
+ *
+ * @return HdlCommonLogic
+ */
+ public static synchronized SpanUtils getInstance() {
+ if (sSpanUtils == null) {
+ synchronized (SpanUtils.class) {
+ if (sSpanUtils == null) {
+ sSpanUtils = new SpanUtils();
+ }
+ }
+
+ }
+ return sSpanUtils;
+ }
+
+ private SpanUtils() {
+ }
+
+ /**
+ * 鍙樺ぇ鍙樺皬
+ */
+ public CharSequence toSizeSpan(CharSequence charSequence, int start, int end, float scale) {
+
+ SpannableString spannableString = new SpannableString(charSequence);
+
+ spannableString.setSpan(
+ new RelativeSizeSpan(scale),
+ start,
+ end,
+ Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+
+ return spannableString;
+ }
+
+ /**
+ * 鍙樿壊
+ */
+ public CharSequence toColorSpan(CharSequence charSequence, int start, int end, int color) {
+
+ SpannableString spannableString = new SpannableString(charSequence);
+
+ spannableString.setSpan(
+ new ForegroundColorSpan(color),
+ start,
+ end,
+ Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+
+ return spannableString;
+ }
+
+ /**
+ * 鍙樿儗鏅壊
+ */
+ public CharSequence toBackgroundColorSpan(CharSequence charSequence, int start, int end, int color) {
+
+ SpannableString spannableString = new SpannableString(charSequence);
+
+ spannableString.setSpan(
+ new BackgroundColorSpan(color),
+ start,
+ end,
+ Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+
+ return spannableString;
+ }
+
+
+ /**
+ * 鍙偣鍑�-甯︿笅鍒掔嚎
+ */
+ public CharSequence toClickSpan(CharSequence charSequence, int start, int end, int color, boolean needUnderLine, OnSpanClickListener listener) {
+
+ SpannableString spannableString = new SpannableString(charSequence);
+
+ ClickableSpan clickableSpan = new ClickableSpan() {
+ @Override
+ public void onClick(@NonNull View widget) {
+ if (listener != null) {
+ //闃叉閲嶅鐐瑰嚮
+ if (System.currentTimeMillis() - mLastClickTime >= TIME_INTERVAL) {
+ //to do
+ listener.onClick(charSequence.subSequence(start, end));
+
+ mLastClickTime = System.currentTimeMillis();
+ }
+
+ }
+ }
+
+ @Override
+ public void updateDrawState(@NonNull TextPaint ds) {
+ ds.setColor(color);
+ ds.setUnderlineText(needUnderLine);
+ }
+ };
+
+ spannableString.setSpan(
+ clickableSpan,
+ start,
+ end,
+ Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+
+ return spannableString;
+ }
+
+ public interface OnSpanClickListener {
+ void onClick(CharSequence charSequence);
+ }
+
+
+ /**
+ * 鍙樻垚鑷畾涔夌殑瀛椾綋
+ */
+ public CharSequence toCustomTypeFaceSpan(CharSequence charSequence, int start, int end, Typeface typeface) {
+
+ SpannableString spannableString = new SpannableString(charSequence);
+
+ spannableString.setSpan(
+ new MyTypefaceSpan(typeface),
+ start,
+ end,
+ Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+
+ return spannableString;
+ }
+
+ /**
+ * 绯荤粺鍘熺敓鐨凾ypefaceSpan鍙兘浣跨敤鍘熺敓鐨勯粯璁ゅ瓧浣�
+ * 濡傛灉浣跨敤鑷畾涔夌殑瀛椾綋锛岄�氳繃杩欎釜鏉ュ疄鐜�
+ */
+ public class MyTypefaceSpan extends MetricAffectingSpan {
+ private final Typeface typeface;
+
+ public MyTypefaceSpan(final Typeface typeface) {
+ this.typeface = typeface;
+ }
+
+ @Override
+ public void updateDrawState(final TextPaint drawState) {
+ apply(drawState);
+ }
+
+ @Override
+ public void updateMeasureState(final TextPaint paint) {
+ apply(paint);
+ }
+
+ private void apply(final Paint paint) {
+ final Typeface oldTypeface = paint.getTypeface();
+ final int oldStyle = oldTypeface != null ? oldTypeface.getStyle() : 0;
+ int fakeStyle = oldStyle & ~typeface.getStyle();
+ if ((fakeStyle & Typeface.BOLD) != 0) {
+ paint.setFakeBoldText(true);
+ }
+ if ((fakeStyle & Typeface.ITALIC) != 0) {
+ paint.setTextSkewX(-0.25f);
+ }
+ paint.setTypeface(typeface);
+ }
+ }
+}
+
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
index 3d5578d..fee374f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/TimeUtils.java
@@ -24,8 +24,52 @@
public static final String zhDateYearFormat = "yyyy";
public static final String enDateYearMonthDayFormat = "dd/MM/yyyy";
- public static final String enDateYearMonthFormat = "/MM/yyyy";
+ public static final String enDateYearMonthFormat = "MM/yyyy";
public static final String enDateYearFormat = "yyyy";
+
+ /**
+ * 鑾峰彇褰撳墠绯荤粺鏃ユ湡鏃堕棿鎴�
+ *
+ * @return 鏃堕棿鎴�
+ */
+ public static long getCurrentTimestamp() {
+ return new Date().getTime();
+ }
+
+ /**
+ * 鑾峰彇鏃ユ湡鏍煎紡 (2024/2/09,yyyy/DD/dd)
+ *
+ * @return 鏃ユ湡鏍煎紡 (2024/2/09,yyyy/DD/dd)
+ */
+ public static String getTimeDateFormat(String timeType) {
+ String timeDateFormat = TimeUtils.zhDateYearMonthDayFormat;
+ switch (timeType) {
+ case TimeType.day: {
+ timeDateFormat = TimeUtils.zhDateYearMonthDayFormat;
+ if (!UserConfigManage.getInstance().isZh()) {
+ timeDateFormat = TimeUtils.enDateYearMonthDayFormat;
+ }
+ }
+ break;
+ case TimeType.month: {
+ timeDateFormat = TimeUtils.zhDateYearMonthFormat;
+ if (!UserConfigManage.getInstance().isZh()) {
+ timeDateFormat = TimeUtils.enDateYearMonthFormat;
+ }
+ }
+ break;
+ case TimeType.year:
+ case TimeType.all: {
+ timeDateFormat = TimeUtils.zhDateYearFormat;
+ if (!UserConfigManage.getInstance().isZh()) {
+ timeDateFormat = TimeUtils.enDateYearFormat;
+ }
+ }
+ break;
+
+ }
+ return timeDateFormat;
+ }
/**
* 鑾峰彇鍒嗛挓
@@ -35,7 +79,7 @@
*/
public static String getMinuteTime(long timestamp) {
try {
- SimpleDateFormat dateFormat = new SimpleDateFormat("mm", Locale.ENGLISH);
+ SimpleDateFormat dateFormat = new SimpleDateFormat("mm", getLocale());
Date date = new Date(timestamp);
return dateFormat.format(date);
} catch (Exception e) {
@@ -53,7 +97,7 @@
*/
public static String getDateTimestamp(long timestamp, String date_format) {
try {
- SimpleDateFormat dateFormat = new SimpleDateFormat(date_format, Locale.ENGLISH);
+ SimpleDateFormat dateFormat = new SimpleDateFormat(date_format, getLocale());
Date date = new Date(timestamp);
return dateFormat.format(date);
} catch (Exception e) {
@@ -74,7 +118,7 @@
if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.en)) {
pattern = "dd-MM-yyyy HH:mm";
}
- SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, Locale.ENGLISH);
+ SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, getLocale());
Date date = new Date(timestamp);
return dateFormat.format(date);
} catch (Exception e) {
@@ -184,7 +228,7 @@
* @return Calendar瀵硅薄
*/
public static Calendar stringToCalendar(String dateString, String dateFormat) {
- SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH);
+ SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, getLocale());
Calendar calendar = Calendar.getInstance();
try {
Date date = sdf.parse(dateString);
@@ -203,7 +247,7 @@
* @return Calendar瀵硅薄
*/
public static String calendarToString(Calendar calendar, String dateFormat) {
- SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH);
+ SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, getLocale());
return sdf.format(calendar.getTime());
}
@@ -214,7 +258,7 @@
* @return Calendar瀵硅薄
*/
public static String dateToString(Date date, String dateFormat) {
- SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH);
+ SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, getLocale());
return sdf.format(date.getTime());
}
@@ -227,7 +271,7 @@
*/
public static long stringDateToTimestamp(String dateString, String dateFormat) {
try {
- SimpleDateFormat slf = new SimpleDateFormat(dateFormat, Locale.getDefault());
+ SimpleDateFormat slf = new SimpleDateFormat(dateFormat, getLocale());
Date date = slf.parse(dateString);
if (date == null) {
return 0;
@@ -238,4 +282,8 @@
return 0;
}
+ private static Locale getLocale() {
+ return Locale.ENGLISH;
+ }
+
}
diff --git a/app/src/main/res/layout/fragment_home_page.xml b/app/src/main/res/layout/fragment_home_page.xml
index 193afad..b51770e 100644
--- a/app/src/main/res/layout/fragment_home_page.xml
+++ b/app/src/main/res/layout/fragment_home_page.xml
@@ -103,11 +103,13 @@
<TextView
android:id="@+id/info_rl1_f_text1_tv"
- android:layout_width="56dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_centerVertical="true"
+ android:layout_centerInParent="true"
+ android:layout_marginStart="@dimen/dp_6"
android:gravity="end|center_vertical"
android:text="88"
+ android:textColor="@color/text_E6000000"
android:textSize="@dimen/text_26"
android:textStyle="bold" />
@@ -528,8 +530,8 @@
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="@dimen/dp_10"
- android:layout_marginTop="@dimen/dp_35"
- android:text="s"
+ android:layout_marginTop="@dimen/dp_39"
+ android:text="@string/saving_standard_coal"
android:textColor="@color/text_66000000"
android:textSize="@dimen/text_12" />
@@ -584,8 +586,8 @@
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="@dimen/dp_10"
- android:layout_marginTop="@dimen/dp_35"
- android:text="s"
+ android:layout_marginTop="@dimen/dp_39"
+ android:text="@string/co_reduction_rate"
android:textColor="@color/text_66000000"
android:textSize="@dimen/text_12" />
@@ -639,8 +641,8 @@
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="@dimen/dp_10"
- android:layout_marginTop="@dimen/dp_35"
- android:text="s"
+ android:layout_marginTop="@dimen/dp_39"
+ android:text="@string/quantity_of_equivalent_values"
android:textColor="@color/text_66000000"
android:textSize="@dimen/text_12" />
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2c06509..67943ad 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -293,4 +293,8 @@
<string name="email_address">閭鍦板潃</string>
<string name="successful_replication">澶嶅埗鎴愬姛</string>
<string name="to_be_added">寰呮帴鍏�</string>
+ <string name="saving_standard_coal">鑺傜害鏍囧噯鐓�</string>
+ <string name="co_reduction_rate">CO2鍑忔帓</string>
+ <string name="quantity_of_equivalent_values">绛夋晥鍊兼暟閲�</string>
+ <string name="pv_power">Pv鍙戠數鍔熺巼</string>
</resources>
\ No newline at end of file
--
Gitblit v1.8.0