// Path: consumer/app/src/main/java/au/com/dius/pactconsumer/data/Repository.java
// public interface Repository {
// 
//   @NonNull
//   Single<ServiceResponse> fetchResponse(@NonNull DateTime dateTime);
// 
// }
// 
// Path: consumer/app/src/main/java/au/com/dius/pactconsumer/presentation/HomeActivity.java
// public class HomeActivity extends PactActivity implements Contract.View {
// 
//   @Inject
//   Repository repository;
// 
//   @Inject
//   Logger logger;
// 
//   private Presenter presenter;
// 
//   private View loadingView;
//   private TextView emptyView;
//   private TextView errorView;
//   private RecyclerView recyclerView;
// 
//   @Override
//   protected void onCreate(@Nullable Bundle savedInstanceState) {
//     super.onCreate(savedInstanceState);
//     setContentView(R.layout.activity_animals);
//     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//     setSupportActionBar(toolbar);
// 
//     initialiseView();
//     initialisePresenter(savedInstanceState);
//   }
// 
//   private void initialiseView() {
//     loadingView = findViewById(R.id.view_loading);
//     emptyView = (TextView) findViewById(R.id.txt_empty);
//     errorView = (TextView) findViewById(R.id.txt_error);
//     recyclerView = (RecyclerView) findViewById(R.id.view_recycler);
//     recyclerView.setLayoutManager(new LinearLayoutManager(this));
//   }
// 
//   private void initialisePresenter(@Nullable Bundle savedInstanceState) {
//     presenter = new Presenter(repository, this, new RxBinder(), logger);
//   }
// 
//   @Override
//   public void inject(@NonNull ApplicationComponent component) {
//     component.inject(this);
//   }
// 
//   @Override
//   protected void onResume() {
//     super.onResume();
//     presenter.onStart();
//   }
// 
//   @Override
//   protected void onPause() {
//     super.onPause();
//     presenter.onStop();
//   }
// 
//   @Override
//   public void setViewState(@NonNull ViewState viewState) {
//     if (viewState instanceof ViewState.Loading) {
//       setLoading((ViewState.Loading) viewState);
//     } else if (viewState instanceof ViewState.Loaded) {
//       setLoaded((ViewState.Loaded) viewState);
//     } else if (viewState instanceof ViewState.Empty) {
//       setEmpty((ViewState.Empty) viewState);
//     } else if (viewState instanceof ViewState.Error) {
//       setError((ViewState.Error) viewState);
//     }
//   }
// 
//   private void setLoading(@NonNull ViewState.Loading viewState) {
//     hideViews();
//     loadingView.setVisibility(View.VISIBLE);
//   }
// 
//   private void setLoaded(@NonNull ViewState.Loaded viewState) {
//     hideViews();
//     recyclerView.setVisibility(View.VISIBLE);
//     recyclerView.setAdapter(new AnimalsAdapter(viewState.getAnimals()));
//   }
// 
//   private void setEmpty(@NonNull ViewState.Empty viewState) {
//     hideViews();
//     emptyView.setText(getResources().getString(viewState.getMessage()));
//     emptyView.setVisibility(View.VISIBLE);
//   }
// 
//   private void setError(@NonNull ViewState.Error viewState) {
//     hideViews();
//     errorView.setText(getResources().getString(viewState.getMessage()));
//     errorView.setVisibility(View.VISIBLE);
//   }
// 
//   private void hideViews() {
//     loadingView.setVisibility(View.GONE);
//     emptyView.setVisibility(View.GONE);
//     errorView.setVisibility(View.GONE);
//     recyclerView.setVisibility(View.GONE);
//   }
// 
// }
// 
// Path: consumer/app/src/main/java/au/com/dius/pactconsumer/util/Logger.java
// @Singleton
// public class Logger {
// 
//   @Inject
//   public Logger() {
//   }
// 
//   public void d(@NonNull String tag, @NonNull String msg) {
//     Log.d(tag, msg);
//   }
// 
//   public void e(@NonNull String tag, @NonNull String msg, @NonNull Throwable tr) {
//     Log.e(tag, msg, tr);
//   }
// 
// }


import android.content.Context;
import android.support.annotation.NonNull;
import javax.inject.Singleton;
import au.com.dius.pactconsumer.data.Repository;
import au.com.dius.pactconsumer.presentation.HomeActivity;
import au.com.dius.pactconsumer.util.Logger;
import dagger.Component;
package au.com.dius.pactconsumer.app.di;




@Singleton
@Component(modules = {ApplicationModule.class, NetworkModule.class})
public interface ApplicationComponent {

  @NonNull
  Context getContext();

  @NonNull
  Logger getLogger();

  @NonNull
// Path: consumer/app/src/main/java/au/com/dius/pactconsumer/data/Repository.java
// public interface Repository {
// 
//   @NonNull
//   Single<ServiceResponse> fetchResponse(@NonNull DateTime dateTime);
// 
// }
// 
// Path: consumer/app/src/main/java/au/com/dius/pactconsumer/presentation/HomeActivity.java
// public class HomeActivity extends PactActivity implements Contract.View {
// 
//   @Inject
//   Repository repository;
// 
//   @Inject
//   Logger logger;
// 
//   private Presenter presenter;
// 
//   private View loadingView;
//   private TextView emptyView;
//   private TextView errorView;
//   private RecyclerView recyclerView;
// 
//   @Override
//   protected void onCreate(@Nullable Bundle savedInstanceState) {
//     super.onCreate(savedInstanceState);
//     setContentView(R.layout.activity_animals);
//     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//     setSupportActionBar(toolbar);
// 
//     initialiseView();
//     initialisePresenter(savedInstanceState);
//   }
// 
//   private void initialiseView() {
//     loadingView = findViewById(R.id.view_loading);
//     emptyView = (TextView) findViewById(R.id.txt_empty);
//     errorView = (TextView) findViewById(R.id.txt_error);
//     recyclerView = (RecyclerView) findViewById(R.id.view_recycler);
//     recyclerView.setLayoutManager(new LinearLayoutManager(this));
//   }
// 
//   private void initialisePresenter(@Nullable Bundle savedInstanceState) {
//     presenter = new Presenter(repository, this, new RxBinder(), logger);
//   }
// 
//   @Override
//   public void inject(@NonNull ApplicationComponent component) {
//     component.inject(this);
//   }
// 
//   @Override
//   protected void onResume() {
//     super.onResume();
//     presenter.onStart();
//   }
// 
//   @Override
//   protected void onPause() {
//     super.onPause();
//     presenter.onStop();
//   }
// 
//   @Override
//   public void setViewState(@NonNull ViewState viewState) {
//     if (viewState instanceof ViewState.Loading) {
//       setLoading((ViewState.Loading) viewState);
//     } else if (viewState instanceof ViewState.Loaded) {
//       setLoaded((ViewState.Loaded) viewState);
//     } else if (viewState instanceof ViewState.Empty) {
//       setEmpty((ViewState.Empty) viewState);
//     } else if (viewState instanceof ViewState.Error) {
//       setError((ViewState.Error) viewState);
//     }
//   }
// 
//   private void setLoading(@NonNull ViewState.Loading viewState) {
//     hideViews();
//     loadingView.setVisibility(View.VISIBLE);
//   }
// 
//   private void setLoaded(@NonNull ViewState.Loaded viewState) {
//     hideViews();
//     recyclerView.setVisibility(View.VISIBLE);
//     recyclerView.setAdapter(new AnimalsAdapter(viewState.getAnimals()));
//   }
// 
//   private void setEmpty(@NonNull ViewState.Empty viewState) {
//     hideViews();
//     emptyView.setText(getResources().getString(viewState.getMessage()));
//     emptyView.setVisibility(View.VISIBLE);
//   }
// 
//   private void setError(@NonNull ViewState.Error viewState) {
//     hideViews();
//     errorView.setText(getResources().getString(viewState.getMessage()));
//     errorView.setVisibility(View.VISIBLE);
//   }
// 
//   private void hideViews() {
//     loadingView.setVisibility(View.GONE);
//     emptyView.setVisibility(View.GONE);
//     errorView.setVisibility(View.GONE);
//     recyclerView.setVisibility(View.GONE);
//   }
// 
// }
// 
// Path: consumer/app/src/main/java/au/com/dius/pactconsumer/util/Logger.java
// @Singleton
// public class Logger {
// 
//   @Inject
//   public Logger() {
//   }
// 
//   public void d(@NonNull String tag, @NonNull String msg) {
//     Log.d(tag, msg);
//   }
// 
//   public void e(@NonNull String tag, @NonNull String msg, @NonNull Throwable tr) {
//     Log.e(tag, msg, tr);
//   }
// 
// }


// Path: consumer/app/src/main/java/au/com/dius/pactconsumer/app/di/ApplicationComponent.java
import android.content.Context;
import android.support.annotation.NonNull;
import javax.inject.Singleton;
import au.com.dius.pactconsumer.data.Repository;
import au.com.dius.pactconsumer.presentation.HomeActivity;
import au.com.dius.pactconsumer.util.Logger;
import dagger.Component;

package au.com.dius.pactconsumer.app.di;




@Singleton
@Component(modules = {ApplicationModule.class, NetworkModule.class})
public interface ApplicationComponent {

  @NonNull
  Context getContext();

  @NonNull
  Logger getLogger();

  @NonNull
  Repository getRepository();