// Path: sample/src/main/java/net/derohimat/samplebasemvp/BaseApplication.java
// public class BaseApplication extends Application {
// 
//     @Inject
//     EventBus mEventBus;
//     private Scheduler mScheduler;
//     private ApplicationComponent mApplicationComponent;
// 
//     public static BaseApplication get(Context context) {
//         return (BaseApplication) context.getApplicationContext();
//     }
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
// 
//         if (isDebuggable) {
//             Timber.plant(new Timber.DebugTree());
//         }
// 
//         mApplicationComponent = DaggerApplicationComponent.builder().applicationModule(new ApplicationModule(this)).build();
// 
//         mApplicationComponent.inject(this);
//         mEventBus.register(this);
//     }
// 
//     public ApplicationComponent getApplicationComponent() {
//         return mApplicationComponent;
//     }
// 
//     @VisibleForTesting
//     public void setApplicationComponent(ApplicationComponent applicationComponent) {
//         this.mApplicationComponent = applicationComponent;
//     }
// 
//     public Scheduler getSubscribeScheduler() {
//         if (mScheduler == null) {
//             mScheduler = Schedulers.io();
//         }
//         return mScheduler;
//     }
// 
//     @Override
//     public void onLowMemory() {
//         super.onLowMemory();
//         Timber.e("########## onLowMemory ##########");
//     }
// 
//     @Override
//     public void onTerminate() {
//         mEventBus.unregister(this);
//         super.onTerminate();
//     }
// 
//     @Subscribe
//     public void onEvent(AuthenticationErrorEvent event) {
//         Timber.e("Unauthorized! Redirect to Signin Activity..!.");
//     }
// 
// }
// 
// Path: sample/src/main/java/net/derohimat/samplebasemvp/di/component/ActivityComponent.java
// @ActivityScope
// @Component(dependencies = ApplicationComponent.class)
// public interface ActivityComponent extends ApplicationComponent {
// 
//     void inject(MainActivity mainActivity);
// 
//     void inject(SettingsActivity settingsActivity);
// }


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import net.derohimat.samplebasemvp.BaseApplication;
import net.derohimat.samplebasemvp.di.component.ActivityComponent;
import net.derohimat.samplebasemvp.di.component.DaggerActivityComponent;
package net.derohimat.samplebasemvp.view;



public abstract class AppActivity extends AppCompatActivity {

    private ActivityComponent mComponent;

// Path: sample/src/main/java/net/derohimat/samplebasemvp/BaseApplication.java
// public class BaseApplication extends Application {
// 
//     @Inject
//     EventBus mEventBus;
//     private Scheduler mScheduler;
//     private ApplicationComponent mApplicationComponent;
// 
//     public static BaseApplication get(Context context) {
//         return (BaseApplication) context.getApplicationContext();
//     }
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
// 
//         if (isDebuggable) {
//             Timber.plant(new Timber.DebugTree());
//         }
// 
//         mApplicationComponent = DaggerApplicationComponent.builder().applicationModule(new ApplicationModule(this)).build();
// 
//         mApplicationComponent.inject(this);
//         mEventBus.register(this);
//     }
// 
//     public ApplicationComponent getApplicationComponent() {
//         return mApplicationComponent;
//     }
// 
//     @VisibleForTesting
//     public void setApplicationComponent(ApplicationComponent applicationComponent) {
//         this.mApplicationComponent = applicationComponent;
//     }
// 
//     public Scheduler getSubscribeScheduler() {
//         if (mScheduler == null) {
//             mScheduler = Schedulers.io();
//         }
//         return mScheduler;
//     }
// 
//     @Override
//     public void onLowMemory() {
//         super.onLowMemory();
//         Timber.e("########## onLowMemory ##########");
//     }
// 
//     @Override
//     public void onTerminate() {
//         mEventBus.unregister(this);
//         super.onTerminate();
//     }
// 
//     @Subscribe
//     public void onEvent(AuthenticationErrorEvent event) {
//         Timber.e("Unauthorized! Redirect to Signin Activity..!.");
//     }
// 
// }
// 
// Path: sample/src/main/java/net/derohimat/samplebasemvp/di/component/ActivityComponent.java
// @ActivityScope
// @Component(dependencies = ApplicationComponent.class)
// public interface ActivityComponent extends ApplicationComponent {
// 
//     void inject(MainActivity mainActivity);
// 
//     void inject(SettingsActivity settingsActivity);
// }


// Path: sample/src/main/java/net/derohimat/samplebasemvp/view/AppActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import net.derohimat.samplebasemvp.BaseApplication;
import net.derohimat.samplebasemvp.di.component.ActivityComponent;
import net.derohimat.samplebasemvp.di.component.DaggerActivityComponent;

package net.derohimat.samplebasemvp.view;



public abstract class AppActivity extends AppCompatActivity {

    private ActivityComponent mComponent;

    @Override