package com.richardradics.cleanrx.ui.activity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.richardradics.cleanrx.R; import com.richardradics.cleanrx.app.BaseActivity; import com.richardradics.cleanrx.di.HasComponent; import com.richardradics.cleanrx.di.component.DaggerUseCaseComponent; import com.richardradics.cleanrx.di.component.UseCaseComponent; import com.richardradics.cleanrx.mvp.presenter.MainPresenter; import com.richardradics.cleanrx.mvp.view.MainView; import com.richardradics.cleanrx.mvp.view.model.MainListViewModel; import com.richardradics.cleanrx.mvp.view.model.MainModelAdapter; import com.richardradics.cleanrx.ui.adapter.RecyclerItemClickListener; import java.util.List; import javax.inject.Inject; import butterknife.InjectView; /** * Created by evan on 3/29/15. */ public class MainActivity extends BaseActivity implements MainView, HasComponent<UseCaseComponent> { private UseCaseComponent useCaseComponent; @InjectView(R.id.mainModelListView) RecyclerView mainRecyclerView; private MainModelAdapter mainModelAdapter; @Inject MainPresenter mainPresenter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.initializeInjector(); mainRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mainPresenter.setView(this); mainRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, (view, position) -> { MainListViewModel mainListViewModel = mainModelAdapter.getItemByPosition(position); DetailActivity.launch(MainActivity.this, view.findViewById(R.id.image), mainListViewModel.getImageUrl(), mainListViewModel.getTitle()); })); } @Override public UseCaseComponent getComponent() { return useCaseComponent; } private void initializeInjector() { this.useCaseComponent = DaggerUseCaseComponent.builder() .applicationComponent(getApplicationComponent()) .activityModule(getActivityModule()) .build(); useCaseComponent.inject(this); } @Override protected void onResume() { super.onResume(); mainPresenter.resume(); } @Override protected void onPause() { super.onPause(); mainPresenter.pause(); } @Override public void setListViewModels(List<MainListViewModel> mainListViewModelList) { if (mainModelAdapter == null) { mainModelAdapter = new MainModelAdapter(); mainRecyclerView.setAdapter(mainModelAdapter); } mainModelAdapter.addAll(mainListViewModelList); } @Override public void showLoading(String message) { loadAndToast.showLoading(message); } @Override public void hideLoading(boolean sucess) { loadAndToast.endLoading(sucess); } @Override public void showActionLabel(String message) { } @Override public void hideActionLabel() { } }