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