package in.mvpstarter.sample.ui.main;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import in.mvpstarter.sample.R;
public class PokemonAdapter extends RecyclerView.Adapter<PokemonAdapter.PokemonViewHolder> {
private List<String> mPokemon;
private ClickListener mClickListener;
@Inject
public PokemonAdapter() {
mPokemon = Collections.emptyList();
}
public void setPokemon(List<String> pokemon) {
mPokemon = pokemon;
}
public void setClickListener(ClickListener clickListener) {
mClickListener = clickListener;
}
@Override
public PokemonViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater
.from(parent.getContext())
.inflate(R.layout.item_pokemon, parent, false);
return new PokemonViewHolder(view);
}
@Override
public void onBindViewHolder(PokemonViewHolder holder, int position) {
String pokemon = mPokemon.get(position);
holder.mPokemon = pokemon;
holder.nameText.setText(String.format("%s%s"
, pokemon.substring(0, 1).toUpperCase(), pokemon.substring(1)));
}
@Override
public int getItemCount() {
return mPokemon.size();
}
public interface ClickListener {
void onPokemonClick(String pokemon);
}
class PokemonViewHolder extends RecyclerView.ViewHolder {
String mPokemon;
@BindView(R.id.text_name)
TextView nameText;
PokemonViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
itemView.setOnClickListener(v -> {
if (mClickListener != null) mClickListener.onPokemonClick(mPokemon);
});
}
}
}