From b9cc7390e8e8ce64c41c26fb369c98ce669d660c Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 07 五月 2025 15:02:30 +0800 Subject: [PATCH] Merge branch '1.2.0' --- app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 268 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 220 insertions(+), 48 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 5be54bf..a935e16 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java @@ -2,35 +2,31 @@ import android.content.Context; import android.graphics.Bitmap; -import android.os.SystemClock; +import android.text.SpannableStringBuilder; +import android.text.TextPaint; import android.text.TextUtils; +import android.text.style.ClickableSpan; import android.view.View; import android.widget.ImageView; import android.widget.TextView; -import com.google.gson.JsonObject; +import androidx.annotation.NonNull; + import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; -import com.hdl.linkpm.sdk.user.HDLLinkPMUser; -import com.hdl.photovoltaic.config.ConstantManage; -import com.hdl.photovoltaic.config.UserConfigManage; -import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; +import com.hdl.photovoltaic.HDLApp; +import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.enums.LowerTagType; import com.hdl.photovoltaic.enums.UnitType; import com.hdl.photovoltaic.utils.GlideUtils; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import org.greenrobot.eventbus.EventBus; -import org.json.JSONObject; -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; /** @@ -41,6 +37,9 @@ private static volatile HdlCommonLogic sHdlCommonLogic; + /** + * 妯″潡绫诲瀷锛堥椤碉紝鐢电珯锛屾秷鎭紝鎴戠殑锛� + */ public static LowerTagType lowerTagType = LowerTagType.home; @@ -61,51 +60,48 @@ return sHdlCommonLogic; } - public static String getConvertDoubleUnit(String value) { + + /** + * @param value 鍊� + * @param unitType 闇�瑕佽浆鐨勫崟浣嶏紙kW锛宬Wh锛� + * @return 瀛楃涓插�艰繑鍥� + */ + public static String convertDoubleValue(String value, String unitType) { if (TextUtils.isEmpty(value)) { return UnitType.noValue; } - BigDecimal formattedValue = getBigDecimal(value); - return formattedValue.toString(); - - } - - public static String getConvertDoubleUnit(int value) { - if (value == 0) { - return UnitType.noValue; - } - BigDecimal formattedValue = getBigDecimal(value + ""); - return formattedValue.toString(); - } - - - /** - * @param value 鍊� - * @param unit 渚嬪:UnitType.kWh - * @return 甯﹀崟浣嶅�艰繑鍥� - */ - public static String getConvertDoubleUnit(String value, String unit) { - if (TextUtils.isEmpty(value)) { - return UnitType.noValue + unit; - } - BigDecimal formattedValue = getBigDecimal(value); - return formattedValue.toString() + unit; - + return divideByOneThousandAndFormat(value,unitType).toString(); } /** - * @param value 鍊� - * @param unit 渚嬪:UnitType.kWh - * @return 甯﹀崟浣嶅�艰繑鍥� + * @param value 鍊� + * @param diploidValue 鍊嶆暟 + * @return 瀛楃涓� */ - public static String getConvertDoubleUnit(int value, String unit) { - if (value == 0) { - return UnitType.noValue + unit; + public static String convertDoubleValue(String value, int diploidValue) { + try { + double doubleValue = Double.parseDouble(value); + BigDecimal bigDecimal = new BigDecimal(doubleValue); + return bigDecimal.divide(new BigDecimal(diploidValue), 2, RoundingMode.HALF_EVEN).toString(); + } catch (Exception e) { + return "0.00"; } - BigDecimal formattedValue = getBigDecimal(value + ""); - return formattedValue.toString() + unit; } + /** + * @param value 鍊� + * @param diploidValue 鍊嶆暟 + * @return 瀛楃涓� + */ + public static BigDecimal convertBigDecimal(String value, int diploidValue) { + try { + double doubleValue = Double.parseDouble(value); + BigDecimal bigDecimal = new BigDecimal(doubleValue); + return bigDecimal.divide(new BigDecimal(diploidValue), 2, RoundingMode.HALF_EVEN); + } catch (Exception e) { + return new BigDecimal(0); + } + } public static String convertString(Object value) { return String.valueOf(value); @@ -118,6 +114,137 @@ } double doubleValue = Double.parseDouble(value); return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP); + } + + + /** + * 闄や互涓�鍗冨拰鏍煎紡 + * + * @param value 鍊� + * @return BigDecimal + */ + public static BigDecimal divideByOneThousandAndFormat(String value, String unitType) { + try { + double doubleValue = Double.parseDouble(value); + long mDoubleValue = doubleValue(value,unitType); + if (mDoubleValue == 0) { + return getBigDecimal(value); + } else { + BigDecimal bigDecimal = new BigDecimal(doubleValue); + return bigDecimal.divide(new BigDecimal(mDoubleValue), 2, RoundingMode.HALF_EVEN); + } + } catch (Exception e) { + BigDecimal bigDecimal = new BigDecimal(0); + return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN); + } + } + + /** + * 鑾峰彇鍊嶆暟 + * + * @param value 鍊� + */ + public static long doubleValue(String value, String unitType) { + try { + double doubleValue = Double.parseDouble(value); + if (unitType.equals(UnitType.kW)) { + if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + return 1000 ; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + return 1000 * 1000 ; + } else if (doubleValue >= 1000 * 1000 * 1000) { + return 1000L * 1000 * 1000 ; + } else { + return 1000; + } + } else { + if (doubleValue >= 1000 && doubleValue < 1000 * 1000) { + return 1000; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + return 1000 * 1000; + } else if (doubleValue >= 1000 * 1000 * 1000) { + return 1000 * 1000 * 1000; + } else { + return 0; + } + } + } catch (Exception e) { + return 0; + } + + } + + + + /** + * 杞崲鐢甸噺(kWh)鍗曚綅 + * + * @param value 鍊� + */ + public static String convertKWHUnit(String value) { + try { + double doubleValue = Double.parseDouble(value); + if (doubleValue >= 1000 && doubleValue < 1000 * 1000) { + return UnitType.mWh; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + return UnitType.gWh; + } else if (doubleValue >= 1000 * 1000 * 1000) { + return UnitType.tWh; + } else { + return UnitType.kWh; + } + } catch (Exception e) { + return UnitType.kWh; + } + + } + + /** + * 杞崲鍔熺巼(kW)鍗曚綅 + * + * @param value 鍊� + */ + public static String convertKWUnit(String value) { + try { + double doubleValue = Double.parseDouble(value); + if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + return UnitType.kW; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + return UnitType.mW; + } else if (doubleValue >= 1000 * 1000 * 1000&&doubleValue < 1000 * 1000 * 1000*1000L) { + return UnitType.gW; + } else if (doubleValue >= 1000 * 1000 * 1000*1000L) { + return UnitType.tW; + } else { + return UnitType.kW; + } + } catch (Exception e) { + return UnitType.kW; + } + + } + + /** + * 杞崲(kWp)鍗曚綅 + * + * @param value 鍊� + */ + public static String convertKWPUnit(String value) { + try { + double doubleValue = Double.parseDouble(value); + if (doubleValue >= 1000 && doubleValue < 1000 * 1000) { + return UnitType.MWp; + } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + return UnitType.GWp; + } else if (doubleValue >= 1000 * 1000 * 1000) { + return UnitType.TWp; + } else { + return UnitType.kWp; + } + } catch (Exception e) { + return UnitType.kWp; + } + } @@ -183,6 +310,7 @@ } } + /** * 娌℃湁鏁版嵁鐣岄潰鐨勬牱寮� * @@ -199,6 +327,46 @@ GlideUtils.getDrawableGifAnimation(mContext, imageView); textView.setText(str); + } + } + + + /** + * 璁剧疆瀛椾綋鐨勫瘜鏂囨湰宸茬粡涓嬪垝绾� + * + * @param view 褰撳墠缁勪欢 + * @param str 鍐呭瀛楃涓� + * @param isUnderline 鏄惁鏄剧ず涓嬪垝绾匡紙true=鏄剧ず锛� + * @param spanCallBack 鐐瑰嚮鏂囨湰鍚庡洖璋冧簨浠�,涓嶉渶瑕佸洖璋冧簨浠跺~null + */ + public void setSpan(TextView view, String str, boolean isUnderline, SpanCallBack spanCallBack) { + + if (view == null || TextUtils.isEmpty(str)) { + return; + } + try { + SpannableStringBuilder registerTvStrSpannable = new SpannableStringBuilder(str); + registerTvStrSpannable.setSpan(new ClickableSpan() { + @Override + public void onClick(@NonNull View widget) { + if (spanCallBack != null) { + spanCallBack.onClick(); + } + } + + @Override + public void updateDrawState(@NonNull TextPaint ds) { + super.updateDrawState(ds); + //璁剧疆瀛椾綋棰滆壊 + ds.setColor(HDLApp.getInstance().getResources().getColor(R.color.text_FFACACAC, null)); + // 鍘绘帀涓嬪垝绾� + ds.setUnderlineText(isUnderline); + } + + + }, 0, str.length(), 0); + view.setText(registerTvStrSpannable); + } catch (Exception ignored) { } } @@ -244,7 +412,7 @@ BaseEventBus baseEventBus = new BaseEventBus(); baseEventBus.setTopic(topic); baseEventBus.setType(type); - EventBus.getDefault().postSticky(baseEventBus); + EventBus.getDefault().post(baseEventBus); } /** @@ -258,7 +426,11 @@ baseEventBus.setTopic(topic); baseEventBus.setType(type); baseEventBus.setData(o); - EventBus.getDefault().postSticky(baseEventBus); + EventBus.getDefault().post(baseEventBus); + } + + public interface SpanCallBack { + void onClick(); } } -- Gitblit v1.8.0