From 0f461a502365d20ed2f887029ff6a8826304c33b Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 20 十月 2025 11:05:00 +0800
Subject: [PATCH] 优化
---
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