// Path: library/src/main/java/net/derohimat/baseapp/ui/BaseActivity.java
// public abstract class BaseActivity extends AppCompatActivity {
// 
//     protected Context mContext = this;
//     protected Toolbar mToolbar;
//     protected LayoutInflater mInflater;
// 
//     protected ActionBar mActionBar;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(getResourceLayout());
//         ButterKnife.bind(this);
//         Timber.tag(getClass().getSimpleName());
//         mInflater = LayoutInflater.from(mContext);
//         onViewReady(savedInstanceState);
//     }
// 
//     public FragmentManager getBaseFragmentManager() {
//         return super.getSupportFragmentManager();
//     }
// 
//     protected void setupToolbar(final Toolbar toolbar) {
//         setupToolbar(toolbar, null);
//     }
// 
//     @TargetApi(Build.VERSION_CODES.LOLLIPOP)
//     protected void setupToolbar(final Toolbar toolbar, final View.OnClickListener onClickListener) {
// 
//         mToolbar = toolbar;
//         setSupportActionBar(toolbar);
//         mActionBar = getSupportActionBar();
//         if (mActionBar != null)
//             mActionBar.setHomeButtonEnabled(true);
// 
//         if (onClickListener != null)
//             toolbar.setNavigationOnClickListener(onClickListener);
//     }
// 
//     public Toolbar getToolbar() {
//         return mToolbar;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         switch (item.getItemId()) {
//             case android.R.id.home:
//                 onBackPressed();
//                 return true;
//             default:
//                 return super.onOptionsItemSelected(item);
//         }
//     }
// 
//     @Override
//     public void setTitle(int title) {
//         super.setTitle(title);
//         if (mActionBar != null)
//             mActionBar.setTitle(getString(title));
//     }
// 
//     public ActionBar getBaseActionBar() {
//         ActionBar actionBar = getSupportActionBar();
//         assert actionBar != null;
//         return actionBar;
//     }
// 
//     @Override
//     public void onBackPressed() {
//         if (getBaseFragmentManager().getBackStackEntryCount() > 0) {
//             getBaseFragmentManager().popBackStack();
//         } else {
//             super.onBackPressed();
//         }
//     }
// 
//     protected void showToast(String message) {
//         Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
//     }
// 
//     protected abstract int getResourceLayout();
// 
//     protected abstract void onViewReady(Bundle savedInstanceState);
// }
// 
// 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 net.derohimat.baseapp.ui.BaseActivity;
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 MvpActivity extends BaseActivity {

    private ActivityComponent mComponent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
// Path: library/src/main/java/net/derohimat/baseapp/ui/BaseActivity.java
// public abstract class BaseActivity extends AppCompatActivity {
// 
//     protected Context mContext = this;
//     protected Toolbar mToolbar;
//     protected LayoutInflater mInflater;
// 
//     protected ActionBar mActionBar;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(getResourceLayout());
//         ButterKnife.bind(this);
//         Timber.tag(getClass().getSimpleName());
//         mInflater = LayoutInflater.from(mContext);
//         onViewReady(savedInstanceState);
//     }
// 
//     public FragmentManager getBaseFragmentManager() {
//         return super.getSupportFragmentManager();
//     }
// 
//     protected void setupToolbar(final Toolbar toolbar) {
//         setupToolbar(toolbar, null);
//     }
// 
//     @TargetApi(Build.VERSION_CODES.LOLLIPOP)
//     protected void setupToolbar(final Toolbar toolbar, final View.OnClickListener onClickListener) {
// 
//         mToolbar = toolbar;
//         setSupportActionBar(toolbar);
//         mActionBar = getSupportActionBar();
//         if (mActionBar != null)
//             mActionBar.setHomeButtonEnabled(true);
// 
//         if (onClickListener != null)
//             toolbar.setNavigationOnClickListener(onClickListener);
//     }
// 
//     public Toolbar getToolbar() {
//         return mToolbar;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         switch (item.getItemId()) {
//             case android.R.id.home:
//                 onBackPressed();
//                 return true;
//             default:
//                 return super.onOptionsItemSelected(item);
//         }
//     }
// 
//     @Override
//     public void setTitle(int title) {
//         super.setTitle(title);
//         if (mActionBar != null)
//             mActionBar.setTitle(getString(title));
//     }
// 
//     public ActionBar getBaseActionBar() {
//         ActionBar actionBar = getSupportActionBar();
//         assert actionBar != null;
//         return actionBar;
//     }
// 
//     @Override
//     public void onBackPressed() {
//         if (getBaseFragmentManager().getBackStackEntryCount() > 0) {
//             getBaseFragmentManager().popBackStack();
//         } else {
//             super.onBackPressed();
//         }
//     }
// 
//     protected void showToast(String message) {
//         Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
//     }
// 
//     protected abstract int getResourceLayout();
// 
//     protected abstract void onViewReady(Bundle savedInstanceState);
// }
// 
// 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/MvpActivity.java
import android.os.Bundle;
import net.derohimat.baseapp.ui.BaseActivity;
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 MvpActivity extends BaseActivity {

    private ActivityComponent mComponent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);