// Path: dagger2-rxjava/src/main/java/com/tonilopezmr/dagger2rxjava/view/MainActivity.java
// public class MainActivity extends AppCompatActivity implements PersonListPresenter.View{
// 
//     RecyclerView recyclerView;
//     View emptyCase;
//     View loadingView;
// 
//     private PersonAdapter adapter;
// 
//     @Inject
//     PersonListPresenter presenter;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_main);
// 
//         initDependencyInjector();
//         initToolbar();
//         initFloatinActionButton();
//         initRecyclerView();
//         initEmptyCaseView();
//         initLoadingView();
// 
// 
//         presenter.setView(this);
//         presenter.init();
//     }
// 
//     private void initDependencyInjector() {
//         PersonApplication app = (PersonApplication) getApplication();
//         app.getMainComponent().inject(this);
//     }
// 
//     private void initLoadingView() {
//         loadingView = findViewById(R.id.progress_bar);
//     }
// 
//     private void initEmptyCaseView() {
//         emptyCase = findViewById(R.id.tv_empty_case);
//     }
// 
//     private void initRecyclerView() {
//         recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
//         recyclerView.setLayoutManager(new LinearLayoutManager(this));
//         recyclerView.setHasFixedSize(true);
//         adapter = new PersonAdapter();
//         recyclerView.setAdapter(adapter);
//     }
// 
//     private void initFloatinActionButton() {
//         FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
//         fab.setOnClickListener(new View.OnClickListener() {
//             @Override
//             public void onClick(View view) {
//                 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
//                         .setAction("Action", null).show();
//             }
//         });
//     }
// 
//     @Override
//     protected void onPause() {
//         super.onPause();
//         presenter.onPause();
//     }
// 
//     private void initToolbar() {
//         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//         setSupportActionBar(toolbar);
//     }
// 
//     @Override
//     public boolean onCreateOptionsMenu(Menu menu) {
//         // Inflate the menu; this adds items to the action bar if it is present.
//         getMenuInflater().inflate(R.menu.menu_main, menu);
//         return true;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         // Handle action bar item clicks here. The action bar will
//         // automatically handle clicks on the Home/Up button, so long
//         // as you specify a parent activity in AndroidManifest.xml.
//         int id = item.getItemId();
// 
//         //noinspection SimplifiableIfStatement
//         if (id == R.id.action_settings) {
//             return true;
//         }
// 
//         return super.onOptionsItemSelected(item);
//     }
// 
//     @Override
//     public void showEmptyView() {
//         emptyCase.setVisibility(View.VISIBLE);
//     }
// 
//     @Override
//     public void hideEmptyView() {
//         emptyCase.setVisibility(View.GONE);
//     }
// 
//     @Override
//     public void showPersons(List<Person> persons) {
//         adapter.addAll(persons);
//         adapter.notifyDataSetChanged();
//     }
// 
//     @Override
//     public void showError() {
//         Snackbar.make(findViewById(R.id.coordinator_layout), "RAMDOM ERROR", Snackbar.LENGTH_SHORT).show();
//     }
// 
//     @Override
//     public void showLoading() {
//         loadingView.setVisibility(View.VISIBLE);
//     }
// 
//     @Override
//     public void hideLoading() {
//         loadingView.setVisibility(View.GONE);
//     }
// }


import com.tonilopezmr.dagger2rxjava.view.MainActivity;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Component;
import rx.Scheduler;
package com.tonilopezmr.dagger2rxjava.di;




/**
 * @author Antonio López.
 */
@Singleton
@Component(modules = MainModule.class) public interface MainComponent {

// Path: dagger2-rxjava/src/main/java/com/tonilopezmr/dagger2rxjava/view/MainActivity.java
// public class MainActivity extends AppCompatActivity implements PersonListPresenter.View{
// 
//     RecyclerView recyclerView;
//     View emptyCase;
//     View loadingView;
// 
//     private PersonAdapter adapter;
// 
//     @Inject
//     PersonListPresenter presenter;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_main);
// 
//         initDependencyInjector();
//         initToolbar();
//         initFloatinActionButton();
//         initRecyclerView();
//         initEmptyCaseView();
//         initLoadingView();
// 
// 
//         presenter.setView(this);
//         presenter.init();
//     }
// 
//     private void initDependencyInjector() {
//         PersonApplication app = (PersonApplication) getApplication();
//         app.getMainComponent().inject(this);
//     }
// 
//     private void initLoadingView() {
//         loadingView = findViewById(R.id.progress_bar);
//     }
// 
//     private void initEmptyCaseView() {
//         emptyCase = findViewById(R.id.tv_empty_case);
//     }
// 
//     private void initRecyclerView() {
//         recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
//         recyclerView.setLayoutManager(new LinearLayoutManager(this));
//         recyclerView.setHasFixedSize(true);
//         adapter = new PersonAdapter();
//         recyclerView.setAdapter(adapter);
//     }
// 
//     private void initFloatinActionButton() {
//         FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
//         fab.setOnClickListener(new View.OnClickListener() {
//             @Override
//             public void onClick(View view) {
//                 Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
//                         .setAction("Action", null).show();
//             }
//         });
//     }
// 
//     @Override
//     protected void onPause() {
//         super.onPause();
//         presenter.onPause();
//     }
// 
//     private void initToolbar() {
//         Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//         setSupportActionBar(toolbar);
//     }
// 
//     @Override
//     public boolean onCreateOptionsMenu(Menu menu) {
//         // Inflate the menu; this adds items to the action bar if it is present.
//         getMenuInflater().inflate(R.menu.menu_main, menu);
//         return true;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         // Handle action bar item clicks here. The action bar will
//         // automatically handle clicks on the Home/Up button, so long
//         // as you specify a parent activity in AndroidManifest.xml.
//         int id = item.getItemId();
// 
//         //noinspection SimplifiableIfStatement
//         if (id == R.id.action_settings) {
//             return true;
//         }
// 
//         return super.onOptionsItemSelected(item);
//     }
// 
//     @Override
//     public void showEmptyView() {
//         emptyCase.setVisibility(View.VISIBLE);
//     }
// 
//     @Override
//     public void hideEmptyView() {
//         emptyCase.setVisibility(View.GONE);
//     }
// 
//     @Override
//     public void showPersons(List<Person> persons) {
//         adapter.addAll(persons);
//         adapter.notifyDataSetChanged();
//     }
// 
//     @Override
//     public void showError() {
//         Snackbar.make(findViewById(R.id.coordinator_layout), "RAMDOM ERROR", Snackbar.LENGTH_SHORT).show();
//     }
// 
//     @Override
//     public void showLoading() {
//         loadingView.setVisibility(View.VISIBLE);
//     }
// 
//     @Override
//     public void hideLoading() {
//         loadingView.setVisibility(View.GONE);
//     }
// }


// Path: dagger2-rxjava/src/main/java/com/tonilopezmr/dagger2rxjava/di/MainComponent.java
import com.tonilopezmr.dagger2rxjava.view.MainActivity;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Component;
import rx.Scheduler;

package com.tonilopezmr.dagger2rxjava.di;




/**
 * @author Antonio López.
 */
@Singleton
@Component(modules = MainModule.class) public interface MainComponent {

    void inject(MainActivity activity);