package mao.com.mao_wanandroid_client.application; import android.content.Context; import android.content.SharedPreferences; import android.database.sqlite.SQLiteDatabase; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatDelegate; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.DefaultRefreshInitializer; import com.scwang.smartrefresh.layout.api.RefreshLayout; import dagger.android.AndroidInjector; import dagger.android.DaggerApplication; import mao.com.mao_wanandroid_client.R; import mao.com.mao_wanandroid_client.model.dao.DaoMaster; import mao.com.mao_wanandroid_client.model.dao.DaoSession; import mao.com.mao_wanandroid_client.di.component.DaggerAppComponent; /** * @author maoqitian * @Description * @Time 2018/9/30 0030 16:39 */ public class MyApplication extends DaggerApplication { /*@Inject DispatchingAndroidInjector<Activity> mAndroidInjector;*/ static {//使用static代码段可以防止内存泄漏 //设置全局默认配置(优先级最低,会被其他设置覆盖) SmartRefreshLayout.setDefaultRefreshInitializer(new DefaultRefreshInitializer() { @Override public void initialize(@NonNull Context context, @NonNull RefreshLayout layout) { //开始设置全局的基本参数(可以被下面的DefaultRefreshHeaderCreator覆盖) layout.setDisableContentWhenLoading(false);//是否在加载的时候禁止列表的操作 layout.setPrimaryColorsId(R.color.colorPrimary, android.R.color.white); //主题\强调颜色资源Id } }); } //双重效验锁实现单例 //private static volatile MyApplication mInstance; private static MyApplication mInstance; private DaoSession mDaoSession; SharedPreferences mSharedPreferences; public static synchronized MyApplication getInstance() { /* if (mInstance == null) { synchronized (MyApplication.class) { if (mInstance == null) { mInstance = new MyApplication(); } } }*/ return mInstance; } @Override public void onCreate() { super.onCreate(); mInstance = this; initGreenDao(); /*DaggerAppComponent.builder(). myAppModule(new MyAppModule(this)) .build();*/ //设置主题样式 mSharedPreferences=MyApplication.getInstance().getSharedPreferences(Constants.SHAREDPREFERENCES_NAME,Context.MODE_PRIVATE); int nightMode = mSharedPreferences.getInt(Constants.SP_NIGHT_MODE,1); AppCompatDelegate.setDefaultNightMode(nightMode); } @Override protected AndroidInjector<? extends DaggerApplication> applicationInjector() { //return DaggerAppComponent.builder().myAppModule(new MyAppModule()).build(); return DaggerAppComponent.create(); } /* @Override protected AndroidInjector<? extends DaggerApplication> applicationInjector() { return DaggerAppComponent.builder().create(this); }*/ //初始化GreenDao 数据库 private void initGreenDao() { DaoMaster.DevOpenHelper devOpenHelper=new DaoMaster.DevOpenHelper(this,Constants.DB_NAME,null); SQLiteDatabase database = devOpenHelper.getWritableDatabase(); DaoMaster daoMaster=new DaoMaster(database); mDaoSession=daoMaster.newSession(); } public DaoSession getDaoSession(){ return mDaoSession; } /* @Override public AndroidInjector<Activity> activityInjector() { return mAndroidInjector; }*/ }