From 4a8ff39b0fab0627ef8f7459587d514cc01c3676 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 十月 2025 10:52:02 +0800
Subject: [PATCH] Merge branch 'wuhuyancao' of http://139.186.142.91:10010/r/productDev/dmvisit into wuhuyancao

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/MApplication.java |  240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 240 insertions(+), 0 deletions(-)

diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/MApplication.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/MApplication.java
new file mode 100644
index 0000000..fb4269e
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/MApplication.java
@@ -0,0 +1,240 @@
+package com.doumee.keyCabinet;
+
+import android.app.Application;
+import android.content.Context;
+import android.hardware.usb.UsbDevice;
+import android.net.Uri;
+import android.os.CountDownTimer;
+import android.text.TextUtils;
+import android.widget.ImageView;
+
+import androidx.annotation.Nullable;
+
+import com.doumee.keyCabinet.bean.DevConfigBean;
+import com.doumee.keyCabinet.bean.LoginBean;
+import com.doumee.keyCabinet.utils.CrashHandler;
+import com.bumptech.glide.Glide;
+import com.doumee.keyCabinet.utils.TimeUtils;
+import com.doumee.lib_coremodel.base.CoreConfig;
+import com.doumee.lib_coremodel.http.other.OkHttpNetworkFetcher;
+import com.doumee.lib_coremodel.util.SpUtil;
+import com.doumee.keyCabinet.bean.MemberBean;
+import com.doumee.keyCabinet.utils.LanguageUtil;
+import com.facebook.fresco.helper.Phoenix;
+import com.facebook.imagepipeline.core.ImagePipelineConfig;
+import com.facebook.imagepipeline.listener.RequestListener;
+import com.facebook.imagepipeline.listener.RequestLoggingListener;
+import com.orhanobut.logger.AndroidLogAdapter;
+import com.orhanobut.logger.FormatStrategy;
+import com.orhanobut.logger.Logger;
+import com.orhanobut.logger.PrettyFormatStrategy;
+import com.scwang.smart.refresh.footer.ClassicsFooter;
+import com.scwang.smart.refresh.header.ClassicsHeader;
+import com.scwang.smart.refresh.layout.SmartRefreshLayout;
+import com.scwang.smart.refresh.layout.api.RefreshFooter;
+import com.scwang.smart.refresh.layout.api.RefreshHeader;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.listener.DefaultRefreshFooterCreator;
+import com.scwang.smart.refresh.layout.listener.DefaultRefreshHeaderCreator;
+import com.yuyh.library.imgsel.ISNav;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Random;
+import java.util.Set;
+
+import dagger.hilt.android.HiltAndroidApp;
+import okhttp3.OkHttpClient;
+import timber.log.Timber;
+
+@HiltAndroidApp
+public class MApplication extends Application {
+
+    public static Context mContext;
+    private static CountDownTimer countTimer;
+    public static int nLan = 0;//涓枃鐢�0锛屽叾浠栫敤1
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        mContext=this;
+        //鍒濆鍖栨棩蹇楁墦鍗�
+        FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
+                .showThreadInfo(false)      //锛堝彲閫夛級鏄惁鏄剧ず绾跨▼淇℃伅銆� 榛樿鍊间负true
+                .methodCount(2)               // 锛堝彲閫夛級瑕佹樉绀虹殑鏂规硶琛屾暟銆� 榛樿2
+                .methodOffset(0)               // 锛堝彲閫夛級璁剧疆璋冪敤鍫嗘爤鐨勫嚱鏁板亸绉诲�硷紝0鐨勮瘽鍒欎粠鎵撳嵃璇og鐨勫嚱鏁板紑濮嬭緭鍑哄爢鏍堜俊鎭紝榛樿鏄�0
+                //.logStrategy(customLog)  //锛堝彲閫夛級鏇存敼瑕佹墦鍗扮殑鏃ュ織绛栫暐銆� 榛樿LogCat
+                .tag("Logger")
+                //锛堝彲閫夛級姣忎釜鏃ュ織鐨勫叏灞�鏍囪銆� 榛樿PRETTY_LOGGER锛堝涓婂浘锛�
+                .build();
+        Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy){
+            @Override
+            public boolean isLoggable(int priority, @Nullable String tag) {
+                return BuildConfig.DEBUG;//鎺у埗鏄惁杈撳嚭鏃ュ織
+            }
+        });
+
+        Timber.plant(new Timber.DebugTree() {
+            @Override protected void log(int priority, String tag, String message, Throwable t) {
+                if(BuildConfig.DEBUG){
+                    System.out.println(TimeUtils.getNowDate()+"    "+tag+" ===> "+message);
+                    //Logger.log(priority, tag, message, t);
+                }
+            }
+        });
+        //璁剧疆鍏ㄥ眬鐨凥eader鏋勫缓鍣�
+        SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
+            @Override
+            public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
+                layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white);//鍏ㄥ眬璁剧疆涓婚棰滆壊
+                return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat("鏇存柊浜� %s"));//鎸囧畾涓虹粡鍏窰eader锛岄粯璁ゆ槸 璐濆灏旈浄杈綡eader
+            }
+        });
+        //璁剧疆鍏ㄥ眬鐨凢ooter鏋勫缓鍣�
+        SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
+            @Override
+            public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
+                //鎸囧畾涓虹粡鍏窮ooter锛岄粯璁ゆ槸 BallPulseFooter
+                return new ClassicsFooter(context).setDrawableSize(20);
+            }
+        });
+        // 鑷畾涔夊浘鐗囧姞杞藉櫒
+        ISNav.getInstance().init(new com.yuyh.library.imgsel.common.ImageLoader() {
+            @Override
+            public void displayImage(Context context, String path, ImageView imageView) {
+                Glide.with(context).load(Uri.fromFile(new File(path))).into(imageView);
+            }
+        });
+        initFresco();
+        SpUtil.init(this);
+        CoreConfig.nomalPicId=R.mipmap.ic_vipimg;
+        CoreConfig.nomalHeadPicId=R.mipmap.ic_vipimg;
+        addCrash();
+        setLanguage();
+    }
+
+    /**
+     * 璁剧疆璇█
+     */
+    private void setLanguage() {
+        String language = SpUtil.getString("language");
+        if(TextUtils.isEmpty(language)){
+            return;
+        }
+        LanguageUtil.changeAppLanguage(this,language);
+    }
+
+    private void initFresco() {
+        Set<RequestListener> requestListeners = new HashSet<>();
+        requestListeners.add(new RequestLoggingListener());
+
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .build();
+
+        ImagePipelineConfig imagePipelineConfig = new com.facebook.fresco.helper.config.PhoenixConfig.Builder(this)
+                .setNetworkFetcher(new OkHttpNetworkFetcher(okHttpClient))
+                .setRequestListeners(requestListeners)
+                .build();
+        Phoenix.init(this, imagePipelineConfig);
+    }
+    public static interface CountTimerCallBack{
+        void onFinish();
+        void onTick(long millisUntilFinished);
+    }
+
+    private static CountTimerCallBack timerCallBack;
+    public static void initCountTimer(boolean isToGuild,CountTimerCallBack callBack){
+        if(countTimer!=null){
+            countTimer.cancel();
+        }
+        if(timerCallBack!=null){
+            timerCallBack = null;
+        }
+        if(configBean==null){
+            return;
+        }
+        timerCallBack = callBack;
+        countTimer = new CountDownTimer(60*1000, 1*1000) {
+            @Override
+            public void onTick(long millisUntilFinished) {
+                //Timber.tag("CountTimer==>").d(millisUntilFinished+"");
+                if (timerCallBack!=null) {
+                    timerCallBack.onTick(millisUntilFinished);
+                }
+            }
+
+            @Override
+            public void onFinish() {
+                Timber.tag("CountTimer==>").d("onFinish");
+                if (timerCallBack!=null) {
+                    timerCallBack.onFinish();
+                }
+            }
+        };
+    }
+
+    public static void startCountTimer(){
+        if(countTimer!=null){
+            countTimer.start();
+        }
+    }
+
+    private void addCrash(){
+        try {
+            CrashHandler crashHandler = CrashHandler.getInstance();
+            crashHandler.init(this);
+        }catch (Exception e){
+            e.printStackTrace();
+            System.out.println("閿欒鏃ュ織4"+e.getMessage());
+        }
+    }
+
+    public static void stopCountTimer() {
+        if(countTimer!=null){
+            countTimer.cancel();
+        }
+    }
+
+    private static DevConfigBean configBean;
+    public static void saveConfigBean(DevConfigBean bean){
+        configBean = bean;
+    }
+
+    public static DevConfigBean getConfigBean(){
+        if(configBean==null){
+            configBean = new DevConfigBean();
+        }
+        return configBean;
+    }
+
+    private static UsbDevice customDevice;
+
+    public static UsbDevice getUsbDevice() {
+        return customDevice;
+    }
+
+    public static void setUsbDevice(UsbDevice device) {
+        customDevice = device;
+    }
+
+    private static LoginBean loginBean;
+
+    public static LoginBean getLoginBean() {
+        if(loginBean==null){
+            loginBean = new LoginBean();
+        }
+        return loginBean;
+    }
+
+    public static void setLoginBean(LoginBean cookie) {
+        MApplication.loginBean = cookie;
+    }
+
+    private static Random random;
+    public static boolean nextBoolean(){
+        if(random==null){
+            random = new Random();
+        }
+        return random.nextBoolean();
+    }
+}

--
Gitblit v1.9.3