From d7ff801372431e64aee8f68ece4b8532cffb2207 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 02 七月 2024 18:32:49 +0800
Subject: [PATCH] 2024年07月02日18:32:40

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java |  277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 277 insertions(+), 0 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 78422a6..89cc4b0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -1,11 +1,53 @@
 package com.hdl.photovoltaic.other;
 
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.os.SystemClock;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.google.gson.JsonObject;
+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.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;
+
 /**
  * 鍏叡閫昏緫
  */
 public class HdlCommonLogic {
 
     private static volatile HdlCommonLogic sHdlCommonLogic;
+
+
+    /**
+     * 妯″潡绫诲瀷锛堥椤碉紝鐢电珯锛屾秷鎭紝鎴戠殑锛�
+     */
+    public static LowerTagType lowerTagType = LowerTagType.home;
+
 
     /**
      * 鑾峰彇褰撳墠瀵硅薄
@@ -23,4 +65,239 @@
         }
         return sHdlCommonLogic;
     }
+
+    public static String getConvertDoubleUnit(String value) {
+        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;
+        }
+        if (unit.equals(UnitType.kW)) {
+            return divideByOneThousandAndFormat(value).toString() + unit;
+        }
+        return getBigDecimal(value).toString() + unit;
+
+    }
+
+    /**
+     * @param value     鍊�
+     * @param unitValue 渚嬪:UnitType.kWh
+     * @param isUnit    true琛ㄧず鏈夊崟浣嶈繑鍥�
+     * @return 甯﹀崟浣嶅�艰繑鍥�
+     */
+    public static String getConvertDoubleUnit(String value, String unitValue, boolean isUnit) {
+        if (TextUtils.isEmpty(value)) {
+            return UnitType.noValue + (isUnit ? unitValue : "");
+        }
+        if (unitValue.equals(UnitType.kW)) {
+            return divideByOneThousandAndFormat(value).toString() + (isUnit ? unitValue : "");
+        }
+        return getBigDecimal(value).toString() + (isUnit ? unitValue : "");
+
+    }
+
+
+    /**
+     * @param value 鍊�
+     * @param unit  渚嬪:UnitType.kWh
+     * @return 甯﹀崟浣嶅�艰繑鍥�
+     */
+    public static String getConvertDoubleUnit(int value, String unit) {
+        if (value == 0) {
+            return UnitType.noValue + unit;
+        }
+        BigDecimal formattedValue = getBigDecimal(value + "");
+        return formattedValue.toString() + unit;
+    }
+
+
+    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);
+    }
+
+    /**
+     * 闄や互涓�鍗冨拰鏍煎紡
+     *
+     * @param value 鍊�
+     * @return BigDecimal
+     */
+    public static BigDecimal divideByOneThousandAndFormat(String value) {
+        double doubleValue = Double.parseDouble(value);
+        BigDecimal bigDecimal = new BigDecimal(doubleValue);
+        return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN);
+    }
+
+
+    /**
+     * 鐢熸垚浜岀淮鐮�
+     *
+     * @param content                瀛楃涓插唴瀹�
+     * @param width                  浜岀淮鐮佸搴�
+     * @param height                 浜岀淮鐮侀珮搴�
+     * @param character_set          缂栫爜鏂瑰紡锛堜竴鑸娇鐢║TF-8锛�
+     * @param error_correction_level 瀹归敊鐜� L锛�7% M锛�15% Q锛�25% H锛�35%
+     * @param margin                 绌虹櫧杈硅窛锛堜簩缁寸爜涓庤竟妗嗙殑绌虹櫧鍖哄煙锛�
+     * @param color_black            榛戣壊鑹插潡
+     * @param color_white            鐧借壊鑹插潡
+     * @return BitMap
+     */
+    public Bitmap createQRCodeBitmap(String content, int width, int height, String character_set, String error_correction_level, String margin, int color_black, int color_white) {
+        // 瀛楃涓插唴瀹瑰垽绌�
+        if (TextUtils.isEmpty(content)) {
+            return null;
+        }
+        // 瀹藉拰楂�>=0
+        if (width < 0 || height < 0) {
+            return null;
+        }
+        try {
+            /** 1.璁剧疆浜岀淮鐮佺浉鍏抽厤缃� */
+            Hashtable<EncodeHintType, String> hints = new Hashtable<>();
+            // 瀛楃杞爜鏍煎紡璁剧疆
+            if (!TextUtils.isEmpty(character_set)) {
+                hints.put(EncodeHintType.CHARACTER_SET, character_set);
+            }
+            // 瀹归敊鐜囪缃�
+            if (!TextUtils.isEmpty(error_correction_level)) {
+                hints.put(EncodeHintType.ERROR_CORRECTION, error_correction_level);
+            }
+            // 绌虹櫧杈硅窛璁剧疆
+            if (!TextUtils.isEmpty(margin)) {
+                hints.put(EncodeHintType.MARGIN, margin);
+            }
+            /** 2.灏嗛厤缃弬鏁颁紶鍏ュ埌QRCodeWriter鐨別ncode鏂规硶鐢熸垚BitMatrix(浣嶇煩闃�)瀵硅薄 */
+            BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
+
+            /** 3.鍒涘缓鍍忕礌鏁扮粍,骞舵牴鎹瓸itMatrix(浣嶇煩闃�)瀵硅薄涓烘暟缁勫厓绱犺祴棰滆壊鍊� */
+            int[] pixels = new int[width * height];
+            for (int y = 0; y < height; y++) {
+                for (int x = 0; x < width; x++) {
+                    //bitMatrix.get(x,y)鏂规硶杩斿洖true鏄粦鑹茶壊鍧楋紝false鏄櫧鑹茶壊鍧�
+                    if (bitMatrix.get(x, y)) {
+                        pixels[y * width + x] = color_black;//榛戣壊鑹插潡鍍忕礌璁剧疆
+                    } else {
+                        pixels[y * width + x] = color_white;// 鐧借壊鑹插潡鍍忕礌璁剧疆
+                    }
+                }
+            }
+            /** 4.鍒涘缓Bitmap瀵硅薄,鏍规嵁鍍忕礌鏁扮粍璁剧疆Bitmap姣忎釜鍍忕礌鐐圭殑棰滆壊鍊�,骞惰繑鍥濨itmap瀵硅薄 */
+            Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+            bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
+            return bitmap;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+
+    /**
+     * 娌℃湁鏁版嵁鐣岄潰鐨勬牱寮�
+     *
+     * @param is_data   true鏈夋暟鎹紝false娌℃暟鎹�
+     * @param parent    鐖跺鍣�
+     * @param imageView 鏄剧ずgif鎺т欢
+     * @param str       鎻忚堪鏂囨湰
+     */
+    public void nullDataUpdateUi(Context mContext, View parent, ImageView imageView, TextView textView, String str, boolean is_data) {
+        if (is_data) {
+            parent.setVisibility(View.GONE);
+        } else {
+            parent.setVisibility(View.VISIBLE);
+            GlideUtils.getDrawableGifAnimation(mContext, imageView);
+            textView.setText(str);
+
+        }
+    }
+
+
+    /**
+     * 鍙戝竷EventBus绮樻�т簨浠�
+     * <p>
+     * 娉ㄦ剰:瑕佸彇娑堢矘鎬т簨浠禘ventBus.getDefault().removeStickyEvent(eventBus);
+     *
+     * @param topic 涓婚
+     * @param type  浜嬩欢
+     */
+    public void postEventBusSticky(String topic, String type) {
+        BaseEventBus baseEventBus = new BaseEventBus();
+        baseEventBus.setTopic(topic);
+        baseEventBus.setType(type);
+        EventBus.getDefault().postSticky(baseEventBus);
+    }
+
+    /**
+     * 鍙戝竷EventBus绮樻�т簨浠�
+     * <p>
+     * 娉ㄦ剰:瑕佸彇娑堢矘鎬т簨浠禘ventBus.getDefault().removeStickyEvent(eventBus);
+     *
+     * @param topic 涓婚
+     * @param type  浜嬩欢
+     */
+    public void postEventBusSticky(String topic, String type, Object o) {
+        BaseEventBus baseEventBus = new BaseEventBus();
+        baseEventBus.setTopic(topic);
+        baseEventBus.setType(type);
+        baseEventBus.setData(o);
+        EventBus.getDefault().postSticky(baseEventBus);
+    }
+
+    /**
+     * 鍙戝竷EventBus浜嬩欢
+     *
+     * @param topic 涓婚
+     * @param type  浜嬩欢
+     */
+    public void postEventBus(String topic, String type) {
+        BaseEventBus baseEventBus = new BaseEventBus();
+        baseEventBus.setTopic(topic);
+        baseEventBus.setType(type);
+        EventBus.getDefault().post(baseEventBus);
+    }
+
+    /**
+     * 鍙戝竷EventBus浜嬩欢
+     *
+     * @param topic 涓婚
+     * @param type  浜嬩欢
+     */
+    public void postEventBus(String topic, String type, Object o) {
+        BaseEventBus baseEventBus = new BaseEventBus();
+        baseEventBus.setTopic(topic);
+        baseEventBus.setType(type);
+        baseEventBus.setData(o);
+        EventBus.getDefault().post(baseEventBus);
+    }
+
 }

--
Gitblit v1.8.0