package com.richardradics.cleanaa.ui; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.richardradics.cleanaa.R; import com.richardradics.cleanaa.app.CleanActivity; import com.richardradics.cleanaa.mvp.presenter.MainPresenter; import com.richardradics.cleanaa.mvp.view.MainView; import com.richardradics.cleanaa.mvp.view.model.MainListViewModel; import com.richardradics.cleanaa.mvp.view.model.MainModelAdapter; import com.richardradics.cleanaa.util.RecyclerItemClickListener; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.OptionsMenu; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; import java.util.List; @EActivity(R.layout.activity_main) @OptionsMenu(R.menu.menu_main) public class MainActivity extends CleanActivity implements MainView { @Bean MainPresenter presenter; @ViewById(R.id.mainModelListView) RecyclerView mainRecyclerView; private MainModelAdapter mainModelAdapter; @AfterViews void onAfterViews() { mainRecyclerView.setLayoutManager(new LinearLayoutManager(this)); presenter.setView(this); mainRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { MainListViewModel mainListViewModel = mainModelAdapter.getItemByPosition(position); DetailActivity.launch(MainActivity.this, view.findViewById(R.id.image), mainListViewModel.getImageUrl(), mainListViewModel.getTitle()); } })); } @Override protected void onStart() { super.onStart(); presenter.start(); } @Override protected void onStop() { super.onStop(); presenter.stop(); } @Override @UiThread public void setListViewModels(List<MainListViewModel> mainListViewModelList) { if (mainModelAdapter == null) { mainModelAdapter = new MainModelAdapter(); mainRecyclerView.setAdapter(mainModelAdapter); } mainModelAdapter.addAll(mainListViewModelList); } @Override public void showLoading(String message) { progress.showLoading(this, message); } @Override public void hideLoading(boolean sucess) { progress.endLoading(sucess); } @Override public void showActionLabel(String message) { cleanErrorHandler.showSnackBar(message); } @Override public void hideActionLabel() { } }