From 8814f3f0828e6ac652a29cc9de9f971fd55bca5b Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 07 五月 2025 14:54:42 +0800
Subject: [PATCH] 2025年05月07日14:54:39

---
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java |  248 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 170 insertions(+), 78 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index 85f9657..b436c04 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -1,19 +1,22 @@
 package com.hdl.photovoltaic;
 
+import android.app.Activity;
+import android.app.ActivityManager;
 import android.app.Application;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.location.Location;
-import android.location.LocationListener;
-import android.location.LocationManager;
-import android.os.Bundle;
+import android.content.res.Configuration;
+import android.os.Build;
+import android.os.LocaleList;
+import android.os.Process;
+import android.os.SystemClock;
 import android.text.TextUtils;
+import android.util.Log;
 
 
-import androidx.annotation.NonNull;
-import androidx.core.app.ActivityCompat;
+import androidx.multidex.MultiDex;
 
+import com.google.gson.Gson;
 import com.hdl.hdlhttp.HxHttpConfig;
 import com.hdl.linkpm.sdk.HDLLinkPMSdk;
 import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
@@ -22,11 +25,15 @@
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.NetworkType;
+import com.hdl.photovoltaic.other.HdlDeviceLogic;
+import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
-import com.hdl.photovoltaic.other.HdlOtaLogic;
+import com.hdl.photovoltaic.other.HdlMessageLogic;
+import com.hdl.photovoltaic.other.HdlResidenceLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
-import com.hdl.photovoltaic.ui.HomeLoginActivity;
+import com.hdl.photovoltaic.ui.LoginActivity;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
 import com.hdl.photovoltaic.utils.AppManagerUtils;
 import com.hdl.photovoltaic.utils.LocalManageUtil;
@@ -37,28 +44,41 @@
 import com.hdl.sdk.link.core.connect.HDLUdpConnect;
 import com.hdl.sdk.link.core.utils.QueueUtils;
 import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
+//import com.umeng.commonsdk.UMConfigure;
 
 import org.greenrobot.eventbus.EventBus;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Locale;
 import java.util.Objects;
 
-import cn.jpush.android.api.JPushInterface;
+//import cn.jpush.android.api.JPushInterface;
 import io.dcloud.common.util.RuningAcitvityUtil;
-import io.dcloud.common.util.net.NetWork;
+import me.jessyan.autosize.AutoSize;
+import me.jessyan.autosize.AutoSizeConfig;
+import me.jessyan.autosize.onAdaptListener;
+import me.jessyan.autosize.utils.ScreenUtils;
 import okhttp3.logging.HttpLoggingInterceptor;
 
 public class HDLApp extends Application {
 
+    final String TAG=HDLApp.class.getName();
     //鎺у埗鎵撳嵃 Debug妯″紡鎵撳嵃
     private Boolean isLogEnabled = true;
     //涓夋柟sdk鍒濆鍖栨爣璇�
     private Boolean isInitThirdSDK = false;
+    //涓夋柟sdk鍒濆鍖栨爣璇�
+    /**
+     * 涓夋柟sdk鍒濆鍖栨爣璇�
+     * 鍦⊿tartActivity閲岄潰鍒濆鍖栦笁鏂筍DK鐨勬爣璇�
+     */
+    public Boolean isStartInitThirdSDK = false;
     //澹版槑涓�涓綋鍓嶅簲鐢ㄧ殑瀹炰緥
     private static HDLApp mHDLApp;
     //澹版槑涓�涓叕鍏辩殑淇℃伅鏄犲皠,鍙綋浣滃叏灞�鍙橀噺浣跨敤;
     public HashMap<String, String> mInfoMap = new HashMap<>();
+
 
     //鍒╃敤鍗曚緥妯″紡鑾峰彇褰撳墠搴旂敤鐨勫敮涓�瀹炰緥
     public static HDLApp getInstance() {
@@ -67,13 +87,21 @@
 
     @Override
     public void onCreate() {
-
         super.onCreate();
+//        // 鑾峰彇褰撳墠杩涚▼鐨凱ID
+//        String processMessage= "杩涚▼ID:"+Process.myPid()+" 杩涚▼鍚嶏細"+RuningAcitvityUtil.getAppName(getBaseContext());
+//        Log.d(TAG, processMessage);
+//        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {
+//            //闈炲師鐢熻繘绋嬶紝鐢ㄥ垵濮嬪寲鍚庨潰鐨�
+//            return;
+//        }
         mHDLApp = this;
         SharedPreUtils.init(this);
         getAppLanguage();
-        initThirdSDK();
-//        appLocationInfo();
+        //棰勫垱寤鸿剼鏈琷son鏂囦欢澶�
+        HdlFileLogic.getInstance().createHdlESLocalJsonDirectory();
+        init();
+
 
     }
 
@@ -81,9 +109,9 @@
         String language = UserConfigManage.getInstance().getCurrentAppLanguage();
         if (TextUtils.isEmpty(language)) {
             //浠庡唴瀛橀噷闈㈣幏鍙栦笉鍒拌瑷�,鑾峰彇褰撳墠绯荤粺鐨�;
-            String str = getResources().getConfiguration().locale.getCountry();
-            if (str.equals("CN") || str.equals("TW")) {
-                UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.cn);
+            String str = getResources().getConfiguration().locale.getLanguage();
+            if (str.equals(LocalManageUtil.zh)) {
+                UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh);
             } else {
                 UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
             }
@@ -119,16 +147,15 @@
     /**
      * 鍒濆鍖栦笁鏂圭浉鍏砈DK
      */
-    public void initThirdSDK() {
+    public void init() {
         // 灏忕▼搴忚繘绋�
-        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains("unimp")) {
+        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {
             return;
         }
         if (isInitThirdSDK) {
             return;
         }
         isInitThirdSDK = true;
-
 //        //5.鍒濆鍖朆ugly
 //        CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true);
         //6.鍒濆鍖朌CUniMPSDK
@@ -140,18 +167,36 @@
 //        TypeUtils.compatibleWithFieldName = true;
 //        //9.鍒濆鍖栫綉缁滃伐鍏�
 //        NetWorkUtil.init(this);
-        //鍒濆鍖栨瀬鍏夋帹閫�
-        initJPush();
+        initAutoSize();
+//        //鍒濆鍖栨瀬鍏夋帹閫�
+//        initJPush();
         initHDLLinkPMSdk();
         HDLLinkLocalSdk.getInstance().init(getInstance());
         initSocket();
         //4.鍒濆鍖朞KHttpLog 鏄惁寮�鍚�
         setOKHttpLogOpen(isLogEnabled);
+//        initMqttClient();
         //鐩戝惉缃戠粶鐘舵�佸彉鍖�
         this.networkMonitoring();
         //鍒濆鍖栨湰鍦癮ssets鏂囦欢澶硅祫婧愭枃浠�
-        this.initLocalAssetsData();
+//        this.initLocalAssetsData();
+//        //鍒濆鍖栧弸鐩烻DK锛屾斁鍦⊿tartActivity閲岄潰鍒濆鍖�
+//        initUMengSDK();
 
+
+    }
+
+    /**
+     * 鍒濆鍖栧弸鐩烻DK锛屾姄闂��鏃ュ織
+     * 闆嗘垚鏁欑▼鍦板潃锛歨ttps://developer.umeng.com/docs/119267/detail/118588
+     */
+    private void initUMengSDK() {
+//        UMConfigure.preInit(this, "6801aec0bc47b67d833fd76d", "XenterraSolar");
+//        //appkey鍜宑hannl蹇呴』淇濇寔鍜岄鍒濆鍖栦竴鑷达紒锛侊紒
+//        //deviceType锛氳澶囩被鍨嬶紝UMConfigure.DEVICE_TYPE_PHONE涓烘墜鏈恒�乁MConfigure.DEVICE_TYPE_BOX涓虹洅瀛�
+//        //pushSecret锛歅ush鎺ㄩ�佷笟鍔$殑secret
+//        UMConfigure.init(this, "6801aec0bc47b67d833fd76d", "XenterraSolar", UMConfigure.DEVICE_TYPE_PHONE, "");
+//        UMConfigure.setLogEnabled(false);//AppConfigManage.isDebug()
     }
 
 
@@ -160,46 +205,66 @@
      */
     private void initHDLLinkPMSdk() {
         //1.鍒濆鍖朣DK
-        HDLLinkPMSdk.initWithAppKey(getInstance(), AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl());
+        HDLLinkPMSdk.initWithAppKey(this, AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl());
         //2.璁剧疆鎵撳嵃
         HDLLinkPMSdk.setLogEnabled(isLogEnabled);
-        //3.閰嶇疆鎺ュ彛璇锋眰璇█
-        Locale locale = LocalManageUtil.getSystemLocale(this);
-        if (!locale.getLanguage().equals("zh")) {
-            HDLLinkPMSdk.setLanguage("en");
-        } else {
-            HDLLinkPMSdk.setLanguage("cn");
+
+        if (TextUtils.isEmpty(UserConfigManage.getInstance().getCurrentAppLanguage())) {
+            //榛樿閰嶇疆鎺ュ彛璇锋眰璇█鏄嫳鏂�
+            UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
         }
+        //3.閰嶇疆鎺ュ彛璇锋眰璇█
+        HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
+
+//        //3.閰嶇疆鎺ュ彛璇锋眰璇█
+//        Locale locale = LocalManageUtil.getSystemLocale(this);
+//        if (!locale.getLanguage().equals("zh")) {
+//            HDLLinkPMSdk.setLanguage("en");
+//        } else {
+//            HDLLinkPMSdk.setLanguage("zh");
+//        }
 //        HDLLinkPMSdk.setLanguage("en");//寮哄埗浣跨敤鑻辨枃
         //4.鐩戝惉鐧诲嚭澶勭悊
         HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() {
             @Override
             public void onReLogin(int type) {
+
+                HdlLogLogic.print("鐩戝惉鍒扮櫥褰曢��鍑�---" + type, true);
                 //type:  0:姝e父閫�鍑�   1锛氭瀬鍏夋帹閫佸己鍒堕��鍑�
                 //鏀跺埌鐧诲綍澶勭悊閫氱煡锛屽叧闂墍鏈夐〉闈㈠苟鎵撳紑鐧诲綍椤甸潰
                 AppManagerUtils.getAppManager().finishAllActivity();
-                HDLSDKSPUtils.clear();
+//                HDLSDKSPUtils.clear();//搴曞眰鑷繁娓呯┖
 
                 //閲嶆柊鐧婚檰,榛樿鍚屾剰闅愮鏀跨瓥
-                UserConfigManage.getInstance().setAcceiptPolicy(true);
+                UserConfigManage.getInstance().setAcceiptPolicy(false);
                 //閲嶆柊璁惧畾涓�涓椂闂�
                 UserConfigManage.getInstance().setLoginDateTime(0);
                 UserConfigManage.getInstance().Save();
 
+                //娓呯┖娑堟伅缂撳瓨鏁版嵁
+                HdlMessageLogic.getInstance().clearListMessage();
+                //娓呯┖鐢电珯缂撳瓨鏁版嵁
+                HdlResidenceLogic.getInstance().clearHouseList();
+                //娓呯┖璁惧缂撳瓨鏁版嵁
+                HdlDeviceLogic.getInstance().clearDeviceList();
+                //娓呯┖缂撳瓨鏁版嵁
+                if (mInfoMap != null) {
+                    mInfoMap.clear();
+                }
                 //鏂紑mqtt杩炴帴
                 if (MqttRecvClient.getInstance() != null) {
-                    MqttRecvClient.getInstance().stop();
+                    MqttRecvClient.getInstance().disConnect();
                 }
                 //鏂紑鎵�鏈塼cp杩炴帴涓旀竻绌鸿繛鎺ョ紦瀛�
                 // TODO: 10/10/23
 //                TcpSocketBoot.stopAllConnectLinkGateway();
-//                    if(null!=HDLUniMPSDKManager.getInstance().getUniMP()){
-//                        LogUtils.d("asdfasdfasdfsdf鎴戣鍒犻櫎鍟�");
-//                        HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
-//                    }
-//                    initDCUniMPSDK();
-                Intent intent = new Intent(getInstance(), HomeLoginActivity.class);
-                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                if (null != HDLUniMPSDKManager.getInstance().getUniMP()) {
+                    HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
+                }
+                SystemClock.sleep(200);
+                initDCUniMPSDK();
+                Intent intent = new Intent(getInstance(), LoginActivity.class);
+                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                 if (type == 1) {
                     intent.putExtra("isJpush", true);
                 }
@@ -234,10 +299,12 @@
         }
     }
 
+    /**
+     * 鍒濆鍖栨瀬鍏塖DK
+     */
     private void initJPush() {
-        JPushInterface.setDebugMode(true);
-        JPushInterface.init(getBaseContext());
-
+//        JPushInterface.setDebugMode(true);
+//        JPushInterface.init(getBaseContext());
     }
 
     /**
@@ -285,13 +352,36 @@
 
     }
 
+    /**
+     * 钃濇箹涓� 淇敼瀹藉害 640dp 瀹藉害鎸夌収dp銆乻p鏉ラ�傞厤
+     * 鏃嬭浆鍚庨珮鍙樺,鎸夋棆杞悗楂樺害閫傞厤,鎵�浠ュ搴︿笉鍐欐
+     */
+    private void initAutoSize() {
+        AutoSize.initCompatMultiProcess(this);
+        boolean isBaseOnWidth = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
+        AutoSizeConfig.getInstance().setBaseOnWidth(true).setCustomFragment(true).setDesignWidthInDp(375).setDesignHeightInDp(812).setUseDeviceSize(false).setOnAdaptListener(new onAdaptListener() {
+            @Override
+            public void onAdaptBefore(Object target, Activity activity) {
+
+                AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
+                AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1] + ScreenUtils.getHeightOfNavigationBar(activity) + ScreenUtils.getStatusBarHeight());
+
+            }
+
+            @Override
+            public void onAdaptAfter(Object target, Activity activity) {
+
+            }
+        });
+    }
+
 
     /**
      * 鍒濆鍖杣ni app mqtt
      */
     private void initUniMqtt() {
         try {
-            String ip = NetworkUtils.getIPAddress(this);
+            String ip = "192.168.1.100";//NetworkUtils.getIPAddress(this);
             if (TextUtils.isEmpty(ip)) {
                 return;
             }
@@ -303,42 +393,44 @@
         }
     }
 
-    public void appLocationInfo() {
-        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
-        if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-            // TODO: Consider calling
-            //    ActivityCompat#requestPermissions
-            // here to request the missing permissions, and then overriding
-            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
-            //                                          int[] grantResults)
-            // to handle the case where the user grants the permission. See the documentation
-            // for ActivityCompat#requestPermissions for more details.
-            return;
-        }
-        //寮�濮嬪畾浣嶆湇鍔★紝minTimeMs鏈�灏忔椂闂撮棿闅旓紙鍗曚綅涓烘绉掞級,minDistanceM鏈�灏忚窛绂婚棿闅旓紙鍗曚綅涓虹背锛夈�佹渶灏忔椂闂撮棿闅旓紙鍗曚綅涓烘绉掞級绛夊弬鏁般��
-        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, new LocationListener() {
-            @Override
-            public void onLocationChanged(@NonNull Location location) {
-                // 褰撲綅缃彂鐢熷彉鍖栨椂璋冪敤姝ゆ柟娉�
-                double latitude = location.getLatitude();   // 鑾峰彇绾害
-                double longitude = location.getLongitude(); // 鑾峰彇缁忓害
 
-                HdlLogLogic.print("绾害--->" + latitude, true);
-                HdlLogLogic.print("缁忓害--->" + longitude, true);
-                // 杩欓噷鍙互鏍规嵁闇�姹傚鐞嗚幏鍙栧埌鐨勭粡绾害鏁版嵁
-            }
-
-            public void onStatusChanged(String provider, int status, Bundle extras) {
-            }
-
-            public void onProviderEnabled(String provider) {
-            }
-
-            public void onProviderDisabled(String provider) {
-            }
-
-        });
+    @Override
+    protected void attachBaseContext(Context base) {
+        MultiDex.install(base);
+        super.attachBaseContext(base);
     }
 
+    /**
+     * 鏀寔涓嫳鏂囧垏鎹�
+     */
+    public Context getAppLocaleContext(Context context) {
+        try {
+            Locale locale = new Locale(UserConfigManage.getInstance().getCurrentAppLanguage());
+            Configuration configuration = context.getResources().getConfiguration();
+            configuration.setLocale(locale);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+                configuration.setLocales(new LocaleList(locale));
+            }
+            return context.createConfigurationContext(configuration);
+        } catch (Exception e) {
+            return context;
+        }
+    }
 
+    /**
+     * 鏀寔涓嫳鏂囧垏鎹�
+     */
+    public Context getAppLocaleContext() {
+        try {
+            Locale locale = new Locale(UserConfigManage.getInstance().getCurrentAppLanguage());
+            Configuration configuration = getResources().getConfiguration();
+            configuration.setLocale(locale);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+                configuration.setLocales(new LocaleList(locale));
+            }
+            return createConfigurationContext(configuration);
+        } catch (Exception e) {
+            return this;
+        }
+    }
 }

--
Gitblit v1.8.0