// Path: app/src/main/java/fr/guddy/androidstarteralt/ApplicationAndroidStarter.java
// @AutoComponent(
//         modules = {
//                 ModuleAsync.class,
//                 ModuleBus.class,
//                 ModuleContext.class,
//                 ModuleDatabase.class,
//                 ModuleEnvironment.class,
//                 ModuleRest.class,
//         }
// )
// @Singleton
// @AutoInjector(ApplicationAndroidStarter.class)
// public class ApplicationAndroidStarter extends Application {
//     private static final String TAG = ApplicationAndroidStarter.class.getSimpleName();
// 
//     //region Singleton
//     protected static ApplicationAndroidStarter sSharedApplication;
// 
//     public static ApplicationAndroidStarter sharedApplication() {
//         return sSharedApplication;
//     }
//     //endregion
// 
//     //region Fields (components)
//     protected ApplicationAndroidStarterComponent mComponentApplication;
//     //endregion
// 
//     //region Injected fields
//     @Inject
//     Merlin merlin;
//     //endregion
// 
//     //region Overridden methods
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         sSharedApplication = this;
// 
//         Logger.init(TAG)
//                 .logLevel(LogLevel.FULL);
// 
//         Hawk.init(this).build();
// 
//         Stetho.initializeWithDefaults(this);
// 
//         try {
//             buildComponent();
//         } catch (final GeneralSecurityException poException) {
//             if (BuildConfig.DEBUG) {
//                 Logger.t(TAG).e(poException, null);
//             }
//         }
// 
//         mComponentApplication.inject(this);
//         merlin.bind();
// 
//         final StrictMode.ThreadPolicy loStrictModeThreadPolicy = new StrictMode.ThreadPolicy.Builder()
//                 .detectAll()
//                 .penaltyDeath()
//                 .build();
//         StrictMode.setThreadPolicy(loStrictModeThreadPolicy);
//     }
// 
//     @Override
//     public void onTerminate() {
//         super.onTerminate();
//         sSharedApplication = null;
//         merlin.unbind();
//     }
//     //endregion
// 
//     //region Protected methods
//     protected void buildComponent() throws GeneralSecurityException {
//         final String lsKey = getString(R.string.base_url_key);
//         final String lsValue = getString(R.string.base_url_value);
// 
//         final String lsBaseUrl = AESCrypt.decrypt(lsKey, lsValue);
// 
//         mComponentApplication = DaggerApplicationAndroidStarterComponent.builder()
//                 .moduleAsync(new ModuleAsync())
//                 .moduleBus(new ModuleBus())
//                 .moduleContext(new ModuleContext(getApplicationContext()))
//                 .moduleDatabase(new ModuleDatabase())
//                 .moduleEnvironment(new ModuleEnvironment())
//                 .moduleRest(new ModuleRest(lsBaseUrl))
//                 .build();
//     }
//     //endregion
// 
//     //region Getters
//     public ApplicationAndroidStarterComponent componentApplication() {
//         return mComponentApplication;
//     }
//     //endregion
// }
// 
// Path: app/src/main/java/fr/guddy/androidstarteralt/persistence/entities/Repo.java
// @Entity
// public interface Repo extends Parcelable, Persistable, Serializable {
//     @Key
//     @Generated
//     long getBaseId();
// 
//     int getUid();
// 
//     String getName();
// 
//     String getDescription();
// 
//     String getUrl();
// 
//     String getAvatarUrl();
// }


import com.hannesdorfmann.mosby.mvp.MvpBasePresenter;
import javax.inject.Inject;
import autodagger.AutoInjector;
import fr.guddy.androidstarteralt.ApplicationAndroidStarter;
import fr.guddy.androidstarteralt.persistence.entities.Repo;
import fr.guddy.androidstarteralt.persistence.entities.RepoEntity;
import io.requery.Persistable;
import io.requery.rx.SingleEntityStore;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

package fr.guddy.androidstarteralt.mvp.repoDetail;




@AutoInjector(ApplicationAndroidStarter.class)
public final class PresenterRepoDetail extends MvpBasePresenter<RepoDetailMvp.View> implements RepoDetailMvp.Presenter {

    //region Injected fields
    @Inject
    SingleEntityStore<Persistable> dataStore;
    //endregion

    //region Fields
    private Subscription mSubscriptionGetRepo;
    //endregion

    //region Constructor
    public PresenterRepoDetail() {

// Path: app/src/main/java/fr/guddy/androidstarteralt/ApplicationAndroidStarter.java
// @AutoComponent(
//         modules = {
//                 ModuleAsync.class,
//                 ModuleBus.class,
//                 ModuleContext.class,
//                 ModuleDatabase.class,
//                 ModuleEnvironment.class,
//                 ModuleRest.class,
//         }
// )
// @Singleton
// @AutoInjector(ApplicationAndroidStarter.class)
// public class ApplicationAndroidStarter extends Application {
//     private static final String TAG = ApplicationAndroidStarter.class.getSimpleName();
// 
//     //region Singleton
//     protected static ApplicationAndroidStarter sSharedApplication;
// 
//     public static ApplicationAndroidStarter sharedApplication() {
//         return sSharedApplication;
//     }
//     //endregion
// 
//     //region Fields (components)
//     protected ApplicationAndroidStarterComponent mComponentApplication;
//     //endregion
// 
//     //region Injected fields
//     @Inject
//     Merlin merlin;
//     //endregion
// 
//     //region Overridden methods
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         sSharedApplication = this;
// 
//         Logger.init(TAG)
//                 .logLevel(LogLevel.FULL);
// 
//         Hawk.init(this).build();
// 
//         Stetho.initializeWithDefaults(this);
// 
//         try {
//             buildComponent();
//         } catch (final GeneralSecurityException poException) {
//             if (BuildConfig.DEBUG) {
//                 Logger.t(TAG).e(poException, null);
//             }
//         }
// 
//         mComponentApplication.inject(this);
//         merlin.bind();
// 
//         final StrictMode.ThreadPolicy loStrictModeThreadPolicy = new StrictMode.ThreadPolicy.Builder()
//                 .detectAll()
//                 .penaltyDeath()
//                 .build();
//         StrictMode.setThreadPolicy(loStrictModeThreadPolicy);
//     }
// 
//     @Override
//     public void onTerminate() {
//         super.onTerminate();
//         sSharedApplication = null;
//         merlin.unbind();
//     }
//     //endregion
// 
//     //region Protected methods
//     protected void buildComponent() throws GeneralSecurityException {
//         final String lsKey = getString(R.string.base_url_key);
//         final String lsValue = getString(R.string.base_url_value);
// 
//         final String lsBaseUrl = AESCrypt.decrypt(lsKey, lsValue);
// 
//         mComponentApplication = DaggerApplicationAndroidStarterComponent.builder()
//                 .moduleAsync(new ModuleAsync())
//                 .moduleBus(new ModuleBus())
//                 .moduleContext(new ModuleContext(getApplicationContext()))
//                 .moduleDatabase(new ModuleDatabase())
//                 .moduleEnvironment(new ModuleEnvironment())
//                 .moduleRest(new ModuleRest(lsBaseUrl))
//                 .build();
//     }
//     //endregion
// 
//     //region Getters
//     public ApplicationAndroidStarterComponent componentApplication() {
//         return mComponentApplication;
//     }
//     //endregion
// }
// 
// Path: app/src/main/java/fr/guddy/androidstarteralt/persistence/entities/Repo.java
// @Entity
// public interface Repo extends Parcelable, Persistable, Serializable {
//     @Key
//     @Generated
//     long getBaseId();
// 
//     int getUid();
// 
//     String getName();
// 
//     String getDescription();
// 
//     String getUrl();
// 
//     String getAvatarUrl();
// }


// Path: app/src/main/java/fr/guddy/androidstarteralt/mvp/repoDetail/PresenterRepoDetail.java
import com.hannesdorfmann.mosby.mvp.MvpBasePresenter;
import javax.inject.Inject;
import autodagger.AutoInjector;
import fr.guddy.androidstarteralt.ApplicationAndroidStarter;
import fr.guddy.androidstarteralt.persistence.entities.Repo;
import fr.guddy.androidstarteralt.persistence.entities.RepoEntity;
import io.requery.Persistable;
import io.requery.rx.SingleEntityStore;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

package fr.guddy.androidstarteralt.mvp.repoDetail;




@AutoInjector(ApplicationAndroidStarter.class)
public final class PresenterRepoDetail extends MvpBasePresenter<RepoDetailMvp.View> implements RepoDetailMvp.Presenter {

    //region Injected fields
    @Inject
    SingleEntityStore<Persistable> dataStore;
    //endregion

    //region Fields
    private Subscription mSubscriptionGetRepo;
    //endregion

    //region Constructor
    public PresenterRepoDetail() {

        ApplicationAndroidStarter.sharedApplication().componentApplication().inject(this);
