// Path: app/src/main/java/io/dwak/holohackernews/app/HackerNewsApplication.java
// 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;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         if (sInstance == null) {
//             sInstance = this;
//         }
// 
//         if("release".equals(BuildConfig.BUILD_TYPE)){
//             Bugsnag.init(this);
//         }
// 
//         mContext = getApplicationContext();
//         Stetho.initialize(
//                 Stetho.newInitializerBuilder(this)
//                       .enableDumpapp(
//                               Stetho.defaultDumperPluginsProvider(this))
//                       .enableWebKitInspector(
//                               Stetho.defaultInspectorModulesProvider(this))
//                       .build());
// 
//         sAppModule = new AppModule(this);
//         sAppComponent = DaggerAppComponent.builder()
//                                           .appModule(sAppModule)
//                                           .build();
//         sAppComponent.inject(this);
// 
//         LocalDataManager.initialize(mContext);
//     }
// 
//     public static boolean isDebug() {
//         return mDebug;
//     }
// 
//     public static HackerNewsApplication getInstance() {
//         return sInstance;
//     }
// 
//     public Context getContext() {
//         return mContext;
//     }
// 
//     public static AppComponent getAppComponent() {
//         return sAppComponent;
//     }
// 
//     public static AppModule getAppModule(){
//         return sAppModule;
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/base/BaseActivity.java
// public class BaseActivity extends RxAppCompatActivity{
//     Toolbar mToolbar;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
//             getWindow().setStatusBarColor(getResources().getColor(UserPreferenceManager.getInstance().isNightModeEnabled()
//                     ? R.color.colorPrimaryDarkNight
//                     : R.color.colorPrimaryDark));
//         }
// 
//         setTheme(UserPreferenceManager.getInstance().isNightModeEnabled()
//                 ? R.style.AppThemeNight
//                 : R.style.AppTheme);
//     }
// 
//     public Toolbar getToolbar(){
//         if (mToolbar == null) {
//             mToolbar = (Toolbar) findViewById(R.id.toolbar);
//             if (mToolbar != null) {
//                 setSupportActionBar(mToolbar);
//             }
//         }
//         return mToolbar;
//     }
// 
//     @Override
//     protected void onResume() {
//         super.onResume();
//         if (getToolbar() != null) {
//             if (UserPreferenceManager.getInstance().isNightModeEnabled()) {
//                 getToolbar().setBackgroundColor(getResources().getColor(R.color.colorPrimaryDarkNight));
//             }
//             else {
//                 getToolbar().setBackgroundColor(getResources().getColor(R.color.colorPrimary));
//             }
//         }
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/base/BaseViewModelFragment.java
// public abstract class BaseViewModelFragment<T extends BaseViewModel> extends BaseFragment {
//     protected abstract T getViewModel();
// 
//     @Override
//     public void onResume() {
//         super.onResume();
//         getViewModel().onAttachToView();
//     }
// 
//     public void onPause(){
//         super.onPause();
//         getViewModel().onDetachFromView();
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/models/AboutLicense.java
// public class AboutLicense {
//     public final int nameResId;
//     public final int licenseResId;
// 
//     public AboutLicense(int nameResId, int license) {
//         this.nameResId = nameResId;
//         this.licenseResId = license;
//     }
// }


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;
import io.dwak.holohackernews.app.HackerNewsApplication;
import io.dwak.holohackernews.app.R;
import io.dwak.holohackernews.app.base.BaseActivity;
import io.dwak.holohackernews.app.base.BaseViewModelFragment;
import io.dwak.holohackernews.app.dagger.component.DaggerViewModelComponent;
import io.dwak.holohackernews.app.models.AboutLicense;
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        if(toolbar !=null){
            toolbar.setTitleTextColor(getResources().getColor(android.R.color.white));
            toolbar.setNavigationOnClickListener(v -> finish());
            setSupportActionBar(toolbar);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, AboutFragment.newInstance())
                    .commit();
        }
    }

    public static class AboutFragment extends BaseViewModelFragment<AboutViewModel> {
        @Inject AboutViewModel mViewModel;
        @InjectView(R.id.recycler_view) RecyclerView mRecyclerView;

        public static Fragment newInstance() {
            return new AboutFragment();
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.fragment_about, container, false);
            ButterKnife.inject(this, view);
            DaggerViewModelComponent.builder()
// Path: app/src/main/java/io/dwak/holohackernews/app/HackerNewsApplication.java
// 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;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         if (sInstance == null) {
//             sInstance = this;
//         }
// 
//         if("release".equals(BuildConfig.BUILD_TYPE)){
//             Bugsnag.init(this);
//         }
// 
//         mContext = getApplicationContext();
//         Stetho.initialize(
//                 Stetho.newInitializerBuilder(this)
//                       .enableDumpapp(
//                               Stetho.defaultDumperPluginsProvider(this))
//                       .enableWebKitInspector(
//                               Stetho.defaultInspectorModulesProvider(this))
//                       .build());
// 
//         sAppModule = new AppModule(this);
//         sAppComponent = DaggerAppComponent.builder()
//                                           .appModule(sAppModule)
//                                           .build();
//         sAppComponent.inject(this);
// 
//         LocalDataManager.initialize(mContext);
//     }
// 
//     public static boolean isDebug() {
//         return mDebug;
//     }
// 
//     public static HackerNewsApplication getInstance() {
//         return sInstance;
//     }
// 
//     public Context getContext() {
//         return mContext;
//     }
// 
//     public static AppComponent getAppComponent() {
//         return sAppComponent;
//     }
// 
//     public static AppModule getAppModule(){
//         return sAppModule;
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/base/BaseActivity.java
// public class BaseActivity extends RxAppCompatActivity{
//     Toolbar mToolbar;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
//             getWindow().setStatusBarColor(getResources().getColor(UserPreferenceManager.getInstance().isNightModeEnabled()
//                     ? R.color.colorPrimaryDarkNight
//                     : R.color.colorPrimaryDark));
//         }
// 
//         setTheme(UserPreferenceManager.getInstance().isNightModeEnabled()
//                 ? R.style.AppThemeNight
//                 : R.style.AppTheme);
//     }
// 
//     public Toolbar getToolbar(){
//         if (mToolbar == null) {
//             mToolbar = (Toolbar) findViewById(R.id.toolbar);
//             if (mToolbar != null) {
//                 setSupportActionBar(mToolbar);
//             }
//         }
//         return mToolbar;
//     }
// 
//     @Override
//     protected void onResume() {
//         super.onResume();
//         if (getToolbar() != null) {
//             if (UserPreferenceManager.getInstance().isNightModeEnabled()) {
//                 getToolbar().setBackgroundColor(getResources().getColor(R.color.colorPrimaryDarkNight));
//             }
//             else {
//                 getToolbar().setBackgroundColor(getResources().getColor(R.color.colorPrimary));
//             }
//         }
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/base/BaseViewModelFragment.java
// public abstract class BaseViewModelFragment<T extends BaseViewModel> extends BaseFragment {
//     protected abstract T getViewModel();
// 
//     @Override
//     public void onResume() {
//         super.onResume();
//         getViewModel().onAttachToView();
//     }
// 
//     public void onPause(){
//         super.onPause();
//         getViewModel().onDetachFromView();
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/models/AboutLicense.java
// public class AboutLicense {
//     public final int nameResId;
//     public final int licenseResId;
// 
//     public AboutLicense(int nameResId, int license) {
//         this.nameResId = nameResId;
//         this.licenseResId = license;
//     }
// }


// Path: app/src/main/java/io/dwak/holohackernews/app/ui/about/AboutActivity.java
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;
import io.dwak.holohackernews.app.HackerNewsApplication;
import io.dwak.holohackernews.app.R;
import io.dwak.holohackernews.app.base.BaseActivity;
import io.dwak.holohackernews.app.base.BaseViewModelFragment;
import io.dwak.holohackernews.app.dagger.component.DaggerViewModelComponent;
import io.dwak.holohackernews.app.models.AboutLicense;

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        if(toolbar !=null){
            toolbar.setTitleTextColor(getResources().getColor(android.R.color.white));
            toolbar.setNavigationOnClickListener(v -> finish());
            setSupportActionBar(toolbar);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, AboutFragment.newInstance())
                    .commit();
        }
    }

    public static class AboutFragment extends BaseViewModelFragment<AboutViewModel> {
        @Inject AboutViewModel mViewModel;
        @InjectView(R.id.recycler_view) RecyclerView mRecyclerView;

        public static Fragment newInstance() {
            return new AboutFragment();
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.fragment_about, container, false);
            ButterKnife.inject(this, view);
            DaggerViewModelComponent.builder()
                                    .appComponent(HackerNewsApplication.getAppComponent())