package com.socks.jiandan.base; import android.app.Application; import android.content.Context; import android.graphics.Color; import com.facebook.stetho.Stetho; import com.socks.greendao.DaoMaster; import com.socks.greendao.DaoSession; import com.socks.jiandan.BuildConfig; import com.socks.jiandan.R; import com.socks.jiandan.cache.BaseCache; import com.socks.jiandan.utils.StrictModeUtil; import com.socks.jiandan.utils.logger.LogLevel; import com.socks.jiandan.utils.logger.Logger; import com.socks.jiandan.view.imageloader.ImageLoadProxy; import com.squareup.leakcanary.LeakCanary; import com.squareup.leakcanary.RefWatcher; public class JDApplication extends Application { public static int COLOR_OF_DIALOG = R.color.primary; public static int COLOR_OF_DIALOG_CONTENT = Color.WHITE; private static Context mContext; private static DaoMaster daoMaster; private static DaoSession daoSession; private RefWatcher refWatcher; @Override public void onCreate() { StrictModeUtil.init(); super.onCreate(); refWatcher = LeakCanary.install(this); mContext = this; ImageLoadProxy.initImageLoader(this); if (BuildConfig.DEBUG) { Logger.init().hideThreadInfo().setMethodCount(1).setLogLevel(LogLevel.FULL); } Stetho.initialize( Stetho.newInitializerBuilder(this) .enableDumpapp(Stetho.defaultDumperPluginsProvider(this)) .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this)) .build()); } public static Context getContext() { return mContext; } public static RefWatcher getRefWatcher(Context context) { JDApplication application = (JDApplication) context.getApplicationContext(); return application.refWatcher; } public static DaoMaster getDaoMaster(Context context) { if (daoMaster == null) { DaoMaster.OpenHelper helper = new DaoMaster.DevOpenHelper(context, BaseCache.DB_NAME, null); daoMaster = new DaoMaster(helper.getWritableDatabase()); } return daoMaster; } public static DaoSession getDaoSession(Context context) { if (daoSession == null) { if (daoMaster == null) { daoMaster = getDaoMaster(context); } daoSession = daoMaster.newSession(); } return daoSession; } }