// Path: app/src/main/java/com/tonilopezmr/sample/di/BaseActivity.java
// public abstract class BaseActivity extends Activity{
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         injectDependencies();
//     //    injectViews();  //TODO no funciona en BaseActivity
//     }
// 
//     private void injectDependencies() {
//         SubjectsApplication application = (SubjectsApplication)getApplication();
//         application.inject(this);
//     }
// 
//     private void injectViews(){
//         ButterKnife.inject(this);
//     }
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/ui/presenter/SubjectListPresenter.java
// public interface SubjectListPresenter extends Presenter{
// 
//     void setView(SubjectListView view);
// 
//     public void onClickItem(SubjectViewModel SubjectModel);
//     public void onLongItemClick(SubjectViewModel subjectModel);
//     public void onRetryButtonClick();
// 
//     public void onFloatingButtonClick(SubjectViewModel subjectViewModel);
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/ui/viewmodel/SubjectViewModelImp.java
// public class SubjectViewModelImp implements SubjectViewModel {
// 
//     private Subject subject;
// 
//     public SubjectViewModelImp(String name) {
//         subject = new Subject(name);
//     }
// 
//     public SubjectViewModelImp(Subject subject) {
//         this.subject = subject;
//     }
// 
//     public int getId(){
//         return this.subject.getId();
//     }
// 
//     public String getName(){
//         return this.subject.getName();
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         boolean result = false;
//         if (o instanceof SubjectViewModel){
//             SubjectViewModel model = (SubjectViewModel)o;
//             if (this.subject.getId() == model.getId() && this.subject.getName().equals(model.getName())){
//                 result = true;
//             }
//         }
//         return result;
//     }
// 
//     @Override
//     public String toString() {
//         return subject.getId()+" "+subject.getName();
//     }
// }


import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.tonilopezmr.sample.R;
import com.tonilopezmr.sample.di.BaseActivity;
import com.tonilopezmr.sample.ui.presenter.SubjectListPresenter;
import com.tonilopezmr.sample.ui.view.SubjectListView;
import com.tonilopezmr.sample.ui.viewmodel.SubjectViewModel;
import com.tonilopezmr.sample.ui.viewmodel.SubjectViewModelImp;
import java.util.Collection;
import java.util.List;
import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;
package com.tonilopezmr.sample.ui;






public class MainActivity extends BaseActivity implements SubjectListView {

    @Inject
// Path: app/src/main/java/com/tonilopezmr/sample/di/BaseActivity.java
// public abstract class BaseActivity extends Activity{
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         injectDependencies();
//     //    injectViews();  //TODO no funciona en BaseActivity
//     }
// 
//     private void injectDependencies() {
//         SubjectsApplication application = (SubjectsApplication)getApplication();
//         application.inject(this);
//     }
// 
//     private void injectViews(){
//         ButterKnife.inject(this);
//     }
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/ui/presenter/SubjectListPresenter.java
// public interface SubjectListPresenter extends Presenter{
// 
//     void setView(SubjectListView view);
// 
//     public void onClickItem(SubjectViewModel SubjectModel);
//     public void onLongItemClick(SubjectViewModel subjectModel);
//     public void onRetryButtonClick();
// 
//     public void onFloatingButtonClick(SubjectViewModel subjectViewModel);
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/ui/viewmodel/SubjectViewModelImp.java
// public class SubjectViewModelImp implements SubjectViewModel {
// 
//     private Subject subject;
// 
//     public SubjectViewModelImp(String name) {
//         subject = new Subject(name);
//     }
// 
//     public SubjectViewModelImp(Subject subject) {
//         this.subject = subject;
//     }
// 
//     public int getId(){
//         return this.subject.getId();
//     }
// 
//     public String getName(){
//         return this.subject.getName();
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         boolean result = false;
//         if (o instanceof SubjectViewModel){
//             SubjectViewModel model = (SubjectViewModel)o;
//             if (this.subject.getId() == model.getId() && this.subject.getName().equals(model.getName())){
//                 result = true;
//             }
//         }
//         return result;
//     }
// 
//     @Override
//     public String toString() {
//         return subject.getId()+" "+subject.getName();
//     }
// }


// Path: app/src/main/java/com/tonilopezmr/sample/ui/MainActivity.java
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.gc.materialdesign.views.ProgressBarCircularIndeterminate;
import com.getbase.floatingactionbutton.FloatingActionButton;
import com.tonilopezmr.sample.R;
import com.tonilopezmr.sample.di.BaseActivity;
import com.tonilopezmr.sample.ui.presenter.SubjectListPresenter;
import com.tonilopezmr.sample.ui.view.SubjectListView;
import com.tonilopezmr.sample.ui.viewmodel.SubjectViewModel;
import com.tonilopezmr.sample.ui.viewmodel.SubjectViewModelImp;
import java.util.Collection;
import java.util.List;
import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;

package com.tonilopezmr.sample.ui;






public class MainActivity extends BaseActivity implements SubjectListView {

    @Inject
    SubjectListPresenter presenter;