// Path: app/src/main/java/sergio/vasco/realmforandroid/app/di/components/AppComponent.java
// @Singleton @Component(modules = {AppModule.class, DataModule.class, InteractorModule.class,
//     RepositoryModule.class, DataSourceModule.class, MapperModule.class})
// public interface AppComponent extends InteractorComponent, DataComponent,
//     DataSourceComponent, RepositoryComponent, MapperComponent {
//   void inject(App app);
// }
// 
// Path: app/src/main/java/sergio/vasco/realmforandroid/app/section/main/MainActivity.java
// public class MainActivity extends BaseInjectionActivity<MainActivityComponent> implements MainView,
//     EasyViewHolder.OnItemClickListener, View.OnClickListener {
// 
//   @Inject MainPresenter presenter;
// 
//   private EasyRecyclerAdapter adapter;
//   @Bind(R.id.recyclerView) RecyclerView recyclerView;
//   @Bind(R.id.fab) FloatingActionButton fab;
// 
//   @Override protected void onCreate(Bundle savedInstanceState) {
//     super.onCreate(savedInstanceState);
//     setContentView(R.layout.activity_main);
// 
//     initUI();
//   }
// 
//   @Override protected void initToolbar() {
//     toolbar.setTitle(getString(R.string.app_name));
//     setSupportActionBar(toolbar);
//   }
// 
//   private void initUI() {
//     initListeners();
//     initAdapter();
//     initRecyclerView();
//   }
// 
//   private void initListeners() {
//     fab.setOnClickListener(this);
//   }
// 
//   @Override protected void onResume() {
//     super.onResume();
//     presenter.onResume();
//     presenter.getContactsFromDataBase();
//   }
// 
//   @Override protected void onPause() {
//     super.onPause();
//     presenter.onPause();
//   }
// 
// 
//   private void initAdapter() {
//     adapter = new EasyRecyclerAdapter(
//         new CustomViewHolderFactory(this),
//         PresentationContact.class,
//         ContactViewHolder.class);
//     adapter.setOnClickListener(this);
//   }
// 
//   private void initRecyclerView() {
//     recyclerView.setLayoutManager(
//         new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
//     recyclerView.setAdapter(adapter);
//     recyclerView.addItemDecoration(new DividerItemDecoration(this));
//   }
// 
//   @Override public void showLoader() {
// 
//   }
// 
//   @Override public void hideLoader() {
// 
//   }
// 
//   @Override public void loadContacts(List<PresentationContact> contactList) {
//     adapter.addAll(contactList);
//   }
// 
//   @Override public void onItemClick(int position, View view) {
// 
//   }
// 
//   @Override protected void initDI() {
//     activityComponent = DaggerMainActivityComponent.builder()
//         .appComponent(getAppComponent())
//         .mainActivityModule(new MainActivityModule(this))
//         .build();
//     activityComponent.inject(this);
//   }
// 
//   @Override public void onClick(View v) {
//     Intent i = new Intent(this,CreateContactActivity.class);
//     startActivity(i);
//   }
// }


import dagger.Component;
import sergio.vasco.realmforandroid.app.di.components.AppComponent;
import sergio.vasco.realmforandroid.app.di.scopes.PerActivity;
import sergio.vasco.realmforandroid.app.section.main.MainActivity;
package sergio.vasco.realmforandroid.app.section.main.di;


/**
 * Name: Sergio Vasco
 * Date: 15/1/16.
 */
@PerActivity @Component(dependencies = AppComponent.class, modules = MainActivityModule.class)
public interface MainActivityComponent {
// Path: app/src/main/java/sergio/vasco/realmforandroid/app/di/components/AppComponent.java
// @Singleton @Component(modules = {AppModule.class, DataModule.class, InteractorModule.class,
//     RepositoryModule.class, DataSourceModule.class, MapperModule.class})
// public interface AppComponent extends InteractorComponent, DataComponent,
//     DataSourceComponent, RepositoryComponent, MapperComponent {
//   void inject(App app);
// }
// 
// Path: app/src/main/java/sergio/vasco/realmforandroid/app/section/main/MainActivity.java
// public class MainActivity extends BaseInjectionActivity<MainActivityComponent> implements MainView,
//     EasyViewHolder.OnItemClickListener, View.OnClickListener {
// 
//   @Inject MainPresenter presenter;
// 
//   private EasyRecyclerAdapter adapter;
//   @Bind(R.id.recyclerView) RecyclerView recyclerView;
//   @Bind(R.id.fab) FloatingActionButton fab;
// 
//   @Override protected void onCreate(Bundle savedInstanceState) {
//     super.onCreate(savedInstanceState);
//     setContentView(R.layout.activity_main);
// 
//     initUI();
//   }
// 
//   @Override protected void initToolbar() {
//     toolbar.setTitle(getString(R.string.app_name));
//     setSupportActionBar(toolbar);
//   }
// 
//   private void initUI() {
//     initListeners();
//     initAdapter();
//     initRecyclerView();
//   }
// 
//   private void initListeners() {
//     fab.setOnClickListener(this);
//   }
// 
//   @Override protected void onResume() {
//     super.onResume();
//     presenter.onResume();
//     presenter.getContactsFromDataBase();
//   }
// 
//   @Override protected void onPause() {
//     super.onPause();
//     presenter.onPause();
//   }
// 
// 
//   private void initAdapter() {
//     adapter = new EasyRecyclerAdapter(
//         new CustomViewHolderFactory(this),
//         PresentationContact.class,
//         ContactViewHolder.class);
//     adapter.setOnClickListener(this);
//   }
// 
//   private void initRecyclerView() {
//     recyclerView.setLayoutManager(
//         new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
//     recyclerView.setAdapter(adapter);
//     recyclerView.addItemDecoration(new DividerItemDecoration(this));
//   }
// 
//   @Override public void showLoader() {
// 
//   }
// 
//   @Override public void hideLoader() {
// 
//   }
// 
//   @Override public void loadContacts(List<PresentationContact> contactList) {
//     adapter.addAll(contactList);
//   }
// 
//   @Override public void onItemClick(int position, View view) {
// 
//   }
// 
//   @Override protected void initDI() {
//     activityComponent = DaggerMainActivityComponent.builder()
//         .appComponent(getAppComponent())
//         .mainActivityModule(new MainActivityModule(this))
//         .build();
//     activityComponent.inject(this);
//   }
// 
//   @Override public void onClick(View v) {
//     Intent i = new Intent(this,CreateContactActivity.class);
//     startActivity(i);
//   }
// }


// Path: app/src/main/java/sergio/vasco/realmforandroid/app/section/main/di/MainActivityComponent.java
import dagger.Component;
import sergio.vasco.realmforandroid.app.di.components.AppComponent;
import sergio.vasco.realmforandroid.app.di.scopes.PerActivity;
import sergio.vasco.realmforandroid.app.section.main.MainActivity;

package sergio.vasco.realmforandroid.app.section.main.di;


/**
 * Name: Sergio Vasco
 * Date: 15/1/16.
 */
@PerActivity @Component(dependencies = AppComponent.class, modules = MainActivityModule.class)
public interface MainActivityComponent {
  void inject(MainActivity mainActivity);