// Path: app/src/main/java/org/xdty/gallery/di/AppComponent.java
// @Singleton
// @Component(modules = AppModule.class)
// public interface AppComponent {
//     void inject(Application application);
// 
//     void inject(MainPresenter mainPresenter);
// 
//     void inject(ViewerPresenter viewerPresenter);
// 
//     void inject(GalleryAdapter galleryAdapter);
// 
//     void inject(DatabaseImpl database);
// }
// 
// Path: app/src/main/java/org/xdty/gallery/di/modules/AppModule.java
// @Module
// public class AppModule {
// 
//     private Application mApplication;
// 
//     public AppModule(Application application) {
//         mApplication = application;
//     }
// 
//     @Singleton
//     @Provides
//     Context provideContext() {
//         return mApplication;
//     }
// 
//     @Singleton
//     @Provides
//     Application provideApplication() {
//         return mApplication;
//     }
// 
//     @Singleton
//     @Provides
//     Setting provideSetting() {
//         return new SettingImpl(mApplication);
//     }
// 
//     @Singleton
//     @Provides
//     Gson provideGson() {
//         return new Gson();
//     }
// 
//     @Singleton
//     @Provides
//     MediaDataSource provideMediaDataSource() {
//         return new MediaRepository();
//     }
// 
//     @Singleton
//     @Provides
//     public OkHttpClient provideOkHttpClient() {
//         return OkHttp.getInstance().client();
//     }
// 
//     @Singleton
//     @Provides
//     public Database provideDatabase() {
//         return DatabaseImpl.getInstance();
//     }
// 
//     @Singleton
//     @Provides
//     public EntityDataStore<Persistable> provideDatabaseSource() {
// 
//         DatabaseSource source = new DatabaseSource(mApplication, Models.DEFAULT, DB_NAME,
//                 DB_VERSION);
//         source.setLoggingEnabled(BuildConfig.DEBUG);
//         Configuration configuration = source.getConfiguration();
// 
//         return new EntityDataStore<>(configuration);
//     }
// 
// }
// 
// Path: app/src/main/java/org/xdty/gallery/setting/Setting.java
// public interface Setting {
// 
//     boolean isCatchCrashEnable();
// 
//     Set<String> getServers();
// 
//     void addServer(String server);
// 
//     String getLocalPath();
// 
// }


import org.xdty.gallery.BuildConfig;
import org.xdty.gallery.di.AppComponent;
import org.xdty.gallery.di.DaggerAppComponent;
import org.xdty.gallery.di.modules.AppModule;
import org.xdty.gallery.setting.Setting;
import javax.inject.Inject;
import cat.ereza.customactivityoncrash.CustomActivityOnCrash;
import io.reactivex.plugins.RxJavaPlugins;
package org.xdty.gallery.application;




public class Application extends android.app.Application {

    private static AppComponent sAppComponent;

    @Inject
    protected Setting mSetting;

    public static AppComponent getAppComponent() {
        return sAppComponent;
    }

// Path: app/src/main/java/org/xdty/gallery/di/AppComponent.java
// @Singleton
// @Component(modules = AppModule.class)
// public interface AppComponent {
//     void inject(Application application);
// 
//     void inject(MainPresenter mainPresenter);
// 
//     void inject(ViewerPresenter viewerPresenter);
// 
//     void inject(GalleryAdapter galleryAdapter);
// 
//     void inject(DatabaseImpl database);
// }
// 
// Path: app/src/main/java/org/xdty/gallery/di/modules/AppModule.java
// @Module
// public class AppModule {
// 
//     private Application mApplication;
// 
//     public AppModule(Application application) {
//         mApplication = application;
//     }
// 
//     @Singleton
//     @Provides
//     Context provideContext() {
//         return mApplication;
//     }
// 
//     @Singleton
//     @Provides
//     Application provideApplication() {
//         return mApplication;
//     }
// 
//     @Singleton
//     @Provides
//     Setting provideSetting() {
//         return new SettingImpl(mApplication);
//     }
// 
//     @Singleton
//     @Provides
//     Gson provideGson() {
//         return new Gson();
//     }
// 
//     @Singleton
//     @Provides
//     MediaDataSource provideMediaDataSource() {
//         return new MediaRepository();
//     }
// 
//     @Singleton
//     @Provides
//     public OkHttpClient provideOkHttpClient() {
//         return OkHttp.getInstance().client();
//     }
// 
//     @Singleton
//     @Provides
//     public Database provideDatabase() {
//         return DatabaseImpl.getInstance();
//     }
// 
//     @Singleton
//     @Provides
//     public EntityDataStore<Persistable> provideDatabaseSource() {
// 
//         DatabaseSource source = new DatabaseSource(mApplication, Models.DEFAULT, DB_NAME,
//                 DB_VERSION);
//         source.setLoggingEnabled(BuildConfig.DEBUG);
//         Configuration configuration = source.getConfiguration();
// 
//         return new EntityDataStore<>(configuration);
//     }
// 
// }
// 
// Path: app/src/main/java/org/xdty/gallery/setting/Setting.java
// public interface Setting {
// 
//     boolean isCatchCrashEnable();
// 
//     Set<String> getServers();
// 
//     void addServer(String server);
// 
//     String getLocalPath();
// 
// }


// Path: app/src/main/java/org/xdty/gallery/application/Application.java
import org.xdty.gallery.BuildConfig;
import org.xdty.gallery.di.AppComponent;
import org.xdty.gallery.di.DaggerAppComponent;
import org.xdty.gallery.di.modules.AppModule;
import org.xdty.gallery.setting.Setting;
import javax.inject.Inject;
import cat.ereza.customactivityoncrash.CustomActivityOnCrash;
import io.reactivex.plugins.RxJavaPlugins;

package org.xdty.gallery.application;




public class Application extends android.app.Application {

    private static AppComponent sAppComponent;

    @Inject
    protected Setting mSetting;

    public static AppComponent getAppComponent() {
        return sAppComponent;
    }

    @Override