// Path: app/src/main/java/com/w9jds/marketbot/classes/modules/ApplicationModule.java
// @Module
// public class ApplicationModule {
// 
//     private Application application;
// 
//     public ApplicationModule(Application application) {
//         this.application = application;
//     }
// 
//     @Provides
//     @Singleton
//     Application provideApplication() {
//         return application;
//     }
// 
//     @Provides
//     @Singleton
//     SharedPreferences provideSharedPreferences(Application application) {
//         return PreferenceManager.getDefaultSharedPreferences(application);
//     }
// 
// }
// 
// Path: app/src/main/java/com/w9jds/marketbot/classes/modules/NetModule.java
// @Module
// public class NetModule {
// 
//     public static final String SINGULARITY = "https://api-sisi.testeveonline.com/";
//     public static final String TRANQUILITY = "https://crest-tq.eveonline.com/";
// 
//     String mBaseUrl;
// 
//     public NetModule(String baseUrl) {
//         this.mBaseUrl = baseUrl;
//     }
// 
//     @Provides
//     @Singleton
//     Interceptor provideInterceptor() {
//         return chain -> {
//             Request request = chain.request();
// 
//             request = request.newBuilder()
//                     .addHeader("User-Agent", "MarketBot by Jeremy Shore")
//                     .build();
// 
//             return chain.proceed(request);
//         };
//     }
// 
//     @Provides
//     @Singleton
//     Cache provideOkHttpCache(Application application) {
//         int cacheSize = 10 * 1024 * 1024;
//         return new Cache(application.getCacheDir(), cacheSize);
//     }
// 
//     @Provides
//     @Singleton
//     OkHttpClient provideOkHttpClient(Cache cache, Interceptor interceptor) {
//         return new OkHttpClient.Builder()
//                 .cache(cache)
//                 .addInterceptor(interceptor)
//                 .build();
//     }
// 
//     @Provides
//     @Singleton
//     Retrofit providePublicRetrofit(OkHttpClient okHttpClient) {
//         return new Retrofit.Builder()
//             .baseUrl(TRANQUILITY)
//             .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//             .addConverterFactory(JacksonConverterFactory.create())
//             .client(okHttpClient)
//             .build();
//     }
// 
//     @Provides
//     @Singleton
//     public CrestService providePublicCrest(Retrofit retrofit) {
//         return retrofit.create(CrestService.class);
//     }
// }
// 
// Path: app/src/main/java/com/w9jds/marketbot/classes/modules/StorageModule.java
// @Module
// public class StorageModule {
// 
//     public StorageModule() {
// 
//     }
// 
//     @Provides
//     @StorageScope
//     String provideServerVersion(SharedPreferences sharedPreferences) {
//         return sharedPreferences.getString("serverVersion", "");
//     }
// 
//     @Provides
//     @StorageScope
//     boolean provideFirstRun(SharedPreferences sharedPreferences) {
//         return sharedPreferences.getBoolean("isFirstRun", true);
//     }
// 
//     @Provides
//     @StorageScope
//     long provideRegionId(SharedPreferences sharedPreferences) {
//         return sharedPreferences.getLong("regionId", 10000002);
//     }
// 
// }


import android.app.Application;
import com.raizlabs.android.dbflow.config.FlowManager;
import com.w9jds.marketbot.classes.components.*;
import com.w9jds.marketbot.classes.modules.ApplicationModule;
import com.w9jds.marketbot.classes.modules.NetModule;
import com.w9jds.marketbot.classes.modules.StorageModule;
package com.w9jds.marketbot.classes;



public class MarketBot extends Application {

    private static BaseComponent baseComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        FlowManager.init(this);

        baseComponent = DaggerBaseComponent.builder()
                .applicationModule(new ApplicationModule(this))
                .netModule(new NetModule(NetModule.TRANQUILITY))
                .build();

    }

    public static StorageComponent createNewStorageSession() {
        return DaggerStorageComponent.builder()
                .baseComponent(baseComponent)
                .storageModule(new StorageModule())
// Path: app/src/main/java/com/w9jds/marketbot/classes/modules/ApplicationModule.java
// @Module
// public class ApplicationModule {
// 
//     private Application application;
// 
//     public ApplicationModule(Application application) {
//         this.application = application;
//     }
// 
//     @Provides
//     @Singleton
//     Application provideApplication() {
//         return application;
//     }
// 
//     @Provides
//     @Singleton
//     SharedPreferences provideSharedPreferences(Application application) {
//         return PreferenceManager.getDefaultSharedPreferences(application);
//     }
// 
// }
// 
// Path: app/src/main/java/com/w9jds/marketbot/classes/modules/NetModule.java
// @Module
// public class NetModule {
// 
//     public static final String SINGULARITY = "https://api-sisi.testeveonline.com/";
//     public static final String TRANQUILITY = "https://crest-tq.eveonline.com/";
// 
//     String mBaseUrl;
// 
//     public NetModule(String baseUrl) {
//         this.mBaseUrl = baseUrl;
//     }
// 
//     @Provides
//     @Singleton
//     Interceptor provideInterceptor() {
//         return chain -> {
//             Request request = chain.request();
// 
//             request = request.newBuilder()
//                     .addHeader("User-Agent", "MarketBot by Jeremy Shore")
//                     .build();
// 
//             return chain.proceed(request);
//         };
//     }
// 
//     @Provides
//     @Singleton
//     Cache provideOkHttpCache(Application application) {
//         int cacheSize = 10 * 1024 * 1024;
//         return new Cache(application.getCacheDir(), cacheSize);
//     }
// 
//     @Provides
//     @Singleton
//     OkHttpClient provideOkHttpClient(Cache cache, Interceptor interceptor) {
//         return new OkHttpClient.Builder()
//                 .cache(cache)
//                 .addInterceptor(interceptor)
//                 .build();
//     }
// 
//     @Provides
//     @Singleton
//     Retrofit providePublicRetrofit(OkHttpClient okHttpClient) {
//         return new Retrofit.Builder()
//             .baseUrl(TRANQUILITY)
//             .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//             .addConverterFactory(JacksonConverterFactory.create())
//             .client(okHttpClient)
//             .build();
//     }
// 
//     @Provides
//     @Singleton
//     public CrestService providePublicCrest(Retrofit retrofit) {
//         return retrofit.create(CrestService.class);
//     }
// }
// 
// Path: app/src/main/java/com/w9jds/marketbot/classes/modules/StorageModule.java
// @Module
// public class StorageModule {
// 
//     public StorageModule() {
// 
//     }
// 
//     @Provides
//     @StorageScope
//     String provideServerVersion(SharedPreferences sharedPreferences) {
//         return sharedPreferences.getString("serverVersion", "");
//     }
// 
//     @Provides
//     @StorageScope
//     boolean provideFirstRun(SharedPreferences sharedPreferences) {
//         return sharedPreferences.getBoolean("isFirstRun", true);
//     }
// 
//     @Provides
//     @StorageScope
//     long provideRegionId(SharedPreferences sharedPreferences) {
//         return sharedPreferences.getLong("regionId", 10000002);
//     }
// 
// }


// Path: app/src/main/java/com/w9jds/marketbot/classes/MarketBot.java
import android.app.Application;
import com.raizlabs.android.dbflow.config.FlowManager;
import com.w9jds.marketbot.classes.components.*;
import com.w9jds.marketbot.classes.modules.ApplicationModule;
import com.w9jds.marketbot.classes.modules.NetModule;
import com.w9jds.marketbot.classes.modules.StorageModule;

package com.w9jds.marketbot.classes;



public class MarketBot extends Application {

    private static BaseComponent baseComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        FlowManager.init(this);

        baseComponent = DaggerBaseComponent.builder()
                .applicationModule(new ApplicationModule(this))
                .netModule(new NetModule(NetModule.TRANQUILITY))
                .build();

    }

    public static StorageComponent createNewStorageSession() {
        return DaggerStorageComponent.builder()
                .baseComponent(baseComponent)
                .storageModule(new StorageModule())
                .build();