// Path: app/src/main/java/io/dwak/holohackernews/app/dagger/component/AppComponent.java
// @Component(modules = {AppModule.class})
// public interface AppComponent {
//     void inject(Application application);
// 
//     @Named(AppModule.CACHE_MANAGER)
//     CacheManager getCacheManager();
// 
//     @Named(AppModule.RESOURCES)
//     Resources getResources();
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/dagger/module/AppModule.java
// @Module
// public class AppModule {
//     public static final String CACHE_MANAGER = "cacheManager";
//     public static final String RESOURCES = "resources";
//     Application mApplication;
// 
//     public AppModule(Application application) {
//         mApplication = application;
//     }
// 
//     @Provides
//     @Named("context")
//     Context providesApplication() {
//         return mApplication;
//     }
// 
// 
//     @Provides
//     @Named(RESOURCES)
//     Resources providesResources() {
//         return mApplication.getResources();
//     }
// 
//     @Provides
//     @Named("gson")
//     Gson providesGson() {
//         return new GsonBuilder().registerTypeAdapter(Long.class, new LongTypeAdapter())
//                                 .create();
//     }
// 
//     @Provides
//     @Singleton
//     @Named("loganSquare")
//     LoganSquareConvertor providesLoganSquare(){
//         return new LoganSquareConvertor();
//     }
// 
//     @Provides
//     @Named("retrofit-loglevel")
//     RestAdapter.LogLevel providesLogLevel(){
//         if(BuildConfig.DEBUG) {
//             return RestAdapter.LogLevel.FULL;
//         }
//         else {
//             return RestAdapter.LogLevel.NONE;
//         }
//     }
// 
//     @Provides
//     @Named(CACHE_MANAGER)
//     CacheManager providesCacheManager(@Named("context")Context context,
//                                       @Named("gson") Gson gson){
//         return CacheManager.getInstance(context, gson);
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/preferences/LocalDataManager.java
// public class LocalDataManager {
//     public static final String PREF_RETURNING_USER = "PREF_RETURNING_USER";
//     public static final String OPEN_COUNT = "OPEN_COUNT";
//     private static LocalDataManager sInstance;
//     @Inject SharedPreferences mPreferences;
// 
//     private LocalDataManager(@NonNull Context context) {
//         DaggerSharedPreferencesComponent.builder()
//                                         .appComponent(HackerNewsApplication.getAppComponent())
//                                         .appModule(HackerNewsApplication.getAppModule())
//                                         .build()
//                                         .inject(this);
//         mPreferences.edit().commit();
//     }
// 
//     public static void initialize(@NonNull Context context) {
//         if (sInstance == null) {
//             sInstance = new LocalDataManager(context);
//         }
//         else {
//             throw new RuntimeException(LocalDataManager.class.getSimpleName() + " has already been initialized!");
//         }
//     }
// 
//     public static LocalDataManager getInstance() {
//         return sInstance;
//     }
// 
//     public boolean isReturningUser() {
//         return getBoolean(PREF_RETURNING_USER);
//     }
// 
//     public void setReturningUser(boolean isFirstRun) {
//         set(PREF_RETURNING_USER, isFirstRun);
//     }
// 
//     public int getOpenCount(){
//         return getInt(OPEN_COUNT);
//     }
// 
//     public void addOpenCount(){
//         int openCount = getOpenCount();
//         set(OPEN_COUNT, ++openCount);
//     }
// 
//     private void set(String key, int i) {
//         SharedPreferences.Editor editor = mPreferences.edit();
//         editor.putInt(key, i);
//         editor.apply();
//     }
// 
//     private int getInt(String key){
//         return mPreferences.getInt(key, 0);
//     }
//     private boolean getBoolean(String key) {
//         return mPreferences.getBoolean(key, false);
//     }
// 
//     @Nullable
//     private String getString(String key) {
//         return mPreferences.getString(key, null);
//     }
// 
//     private void set(@NonNull String key, boolean value) {
//         SharedPreferences.Editor editor = mPreferences.edit();
//         editor.putBoolean(key, value);
//         editor.apply();
//     }
// 
//     private void set(@NonNull String key, String value) {
//         SharedPreferences.Editor editor = mPreferences.edit();
//         editor.putString(key, value);
//         editor.apply();
//     }
// 
//     private void remove(@NonNull String key) {
//         mPreferences.edit().remove(key).apply();
//     }
// }


import android.content.Context;
import com.bugsnag.android.Bugsnag;
import com.facebook.stetho.Stetho;
import com.orm.SugarApp;
import io.dwak.holohackernews.app.dagger.component.AppComponent;
import io.dwak.holohackernews.app.dagger.component.DaggerAppComponent;
import io.dwak.holohackernews.app.dagger.module.AppModule;
import io.dwak.holohackernews.app.preferences.LocalDataManager;
package io.dwak.holohackernews.app;




public class HackerNewsApplication extends SugarApp {
    private static boolean mDebug = BuildConfig.DEBUG;
    private static HackerNewsApplication sInstance;
    private Context mContext;
    private static AppComponent sAppComponent;

// Path: app/src/main/java/io/dwak/holohackernews/app/dagger/component/AppComponent.java
// @Component(modules = {AppModule.class})
// public interface AppComponent {
//     void inject(Application application);
// 
//     @Named(AppModule.CACHE_MANAGER)
//     CacheManager getCacheManager();
// 
//     @Named(AppModule.RESOURCES)
//     Resources getResources();
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/dagger/module/AppModule.java
// @Module
// public class AppModule {
//     public static final String CACHE_MANAGER = "cacheManager";
//     public static final String RESOURCES = "resources";
//     Application mApplication;
// 
//     public AppModule(Application application) {
//         mApplication = application;
//     }
// 
//     @Provides
//     @Named("context")
//     Context providesApplication() {
//         return mApplication;
//     }
// 
// 
//     @Provides
//     @Named(RESOURCES)
//     Resources providesResources() {
//         return mApplication.getResources();
//     }
// 
//     @Provides
//     @Named("gson")
//     Gson providesGson() {
//         return new GsonBuilder().registerTypeAdapter(Long.class, new LongTypeAdapter())
//                                 .create();
//     }
// 
//     @Provides
//     @Singleton
//     @Named("loganSquare")
//     LoganSquareConvertor providesLoganSquare(){
//         return new LoganSquareConvertor();
//     }
// 
//     @Provides
//     @Named("retrofit-loglevel")
//     RestAdapter.LogLevel providesLogLevel(){
//         if(BuildConfig.DEBUG) {
//             return RestAdapter.LogLevel.FULL;
//         }
//         else {
//             return RestAdapter.LogLevel.NONE;
//         }
//     }
// 
//     @Provides
//     @Named(CACHE_MANAGER)
//     CacheManager providesCacheManager(@Named("context")Context context,
//                                       @Named("gson") Gson gson){
//         return CacheManager.getInstance(context, gson);
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/preferences/LocalDataManager.java
// public class LocalDataManager {
//     public static final String PREF_RETURNING_USER = "PREF_RETURNING_USER";
//     public static final String OPEN_COUNT = "OPEN_COUNT";
//     private static LocalDataManager sInstance;
//     @Inject SharedPreferences mPreferences;
// 
//     private LocalDataManager(@NonNull Context context) {
//         DaggerSharedPreferencesComponent.builder()
//                                         .appComponent(HackerNewsApplication.getAppComponent())
//                                         .appModule(HackerNewsApplication.getAppModule())
//                                         .build()
//                                         .inject(this);
//         mPreferences.edit().commit();
//     }
// 
//     public static void initialize(@NonNull Context context) {
//         if (sInstance == null) {
//             sInstance = new LocalDataManager(context);
//         }
//         else {
//             throw new RuntimeException(LocalDataManager.class.getSimpleName() + " has already been initialized!");
//         }
//     }
// 
//     public static LocalDataManager getInstance() {
//         return sInstance;
//     }
// 
//     public boolean isReturningUser() {
//         return getBoolean(PREF_RETURNING_USER);
//     }
// 
//     public void setReturningUser(boolean isFirstRun) {
//         set(PREF_RETURNING_USER, isFirstRun);
//     }
// 
//     public int getOpenCount(){
//         return getInt(OPEN_COUNT);
//     }
// 
//     public void addOpenCount(){
//         int openCount = getOpenCount();
//         set(OPEN_COUNT, ++openCount);
//     }
// 
//     private void set(String key, int i) {
//         SharedPreferences.Editor editor = mPreferences.edit();
//         editor.putInt(key, i);
//         editor.apply();
//     }
// 
//     private int getInt(String key){
//         return mPreferences.getInt(key, 0);
//     }
//     private boolean getBoolean(String key) {
//         return mPreferences.getBoolean(key, false);
//     }
// 
//     @Nullable
//     private String getString(String key) {
//         return mPreferences.getString(key, null);
//     }
// 
//     private void set(@NonNull String key, boolean value) {
//         SharedPreferences.Editor editor = mPreferences.edit();
//         editor.putBoolean(key, value);
//         editor.apply();
//     }
// 
//     private void set(@NonNull String key, String value) {
//         SharedPreferences.Editor editor = mPreferences.edit();
//         editor.putString(key, value);
//         editor.apply();
//     }
// 
//     private void remove(@NonNull String key) {
//         mPreferences.edit().remove(key).apply();
//     }
// }


// Path: app/src/main/java/io/dwak/holohackernews/app/HackerNewsApplication.java
import android.content.Context;
import com.bugsnag.android.Bugsnag;
import com.facebook.stetho.Stetho;
import com.orm.SugarApp;
import io.dwak.holohackernews.app.dagger.component.AppComponent;
import io.dwak.holohackernews.app.dagger.component.DaggerAppComponent;
import io.dwak.holohackernews.app.dagger.module.AppModule;
import io.dwak.holohackernews.app.preferences.LocalDataManager;

package io.dwak.holohackernews.app;




public class HackerNewsApplication extends SugarApp {
    private static boolean mDebug = BuildConfig.DEBUG;
    private static HackerNewsApplication sInstance;
    private Context mContext;
    private static AppComponent sAppComponent;

    private static AppModule sAppModule;