package com.anthony.library; import android.app.Application; import android.content.Context; import android.os.Environment; import android.os.Handler; import android.support.multidex.MultiDex; import android.util.Log; import java.io.File; /** * Created by Anthony on 2016/6/3. * Class Note: * Base Application for Application * use in AndroidManifest.xml */ public class BaseApplication extends Application { // DataManager mDataManager; private static Handler mHandler; private static Context mContext; @Override public void onCreate() { super.onCreate(); mHandler = new Handler(); mContext = getApplicationContext(); // mDataManager = new DataManager(getApplicationContext()); //Dagger2 inject // getAppComponent().inject(this); //get DatabaseHelper instance // dbHelper = mDataManager.getDatabaseHelper(); // mEventBus.register(this); // initAVOS(); // initEaseUI(); // init EaseUI(for IM,Instant Messaging) // Thread.setDefaultUncaughtExceptionHandler(new LocalFileUncaughtExceptionHandler(this, // Thread.getDefaultUncaughtExceptionHandler())); //exception handler // if (BuildConfig.DEBUG) { // Timber.plant(new Timber.DebugTree()); // } else { // //oops,Fabric currently not available , Fabric.with(this, new Crashlytics()); Timber.plant(new CrashlyticsTree()); // Timber.plant(new CrashReportingTree()); // } } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this);//multi dex support } public static Context getContext() { return mContext; } public static Handler getHanlder() { return mHandler; } public static BaseApplication get(Context context) { return (BaseApplication) context.getApplicationContext(); } /** * get cache dir * * @return cache directory */ @Override public File getCacheDir() { Log.i("getCacheDir", "cache sdcard state: " + Environment.getExternalStorageState()); if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { File cacheDir = getExternalCacheDir(); if (cacheDir != null && (cacheDir.exists() || cacheDir.mkdirs())) { Log.i("getCacheDir", "cache dir: " + cacheDir.getAbsolutePath()); return cacheDir; } } File cacheDir = super.getCacheDir(); Log.i("getCacheDir", "cache dir: " + cacheDir.getAbsolutePath()); return cacheDir; } /** * A tree which logs important information for crash reporting.fake one */ // public class CrashReportingTree extends Timber.Tree { // @Override // protected void log(int priority, String tag, String message, Throwable t) { // if (priority == Log.VERBOSE || priority == Log.DEBUG) { // return; // } // // FakeCrashLibrary.log(priority, tag, message); // // if (t != null) { // if (priority == Log.ERROR) { // FakeCrashLibrary.logError(t); // } else if (priority == Log.WARN) { // FakeCrashLibrary.logWarning(t); // } // } // } // } /** * A logging implementation which reports 'info', 'warning', and 'error' logs to Crashlytics. */ /* public class CrashlyticsTree extends Timber.Tree { @Override protected void log(int priority, String tag, String message, Throwable t) { if (priority == Log.VERBOSE || priority == Log.DEBUG) { return; } Crashlytics.log(priority, tag, message); if (t != null) { if (priority == Log.ERROR) { Crashlytics.logException(t); } } } }*/ }