package com.vgrec.espressoexamples.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.vgrec.espressoexamples.Database;
import com.vgrec.espressoexamples.R;
import com.vgrec.espressoexamples.activities.BookDetailsActivity;
import com.vgrec.espressoexamples.models.Book;
/**
* The adapter used by RecyclerView to display books.
*
* @author vgrec, created on 3/30/15.
*/
public class RecyclerBooksAdapter extends RecyclerView.Adapter<RecyclerBooksAdapter.RowHolder> {
private LayoutInflater inflater;
public RecyclerBooksAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
@Override
public RowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
return new RowHolder(inflater.inflate(R.layout.item_book, viewGroup, false));
}
@Override
public void onBindViewHolder(RowHolder rowHolder, int i) {
rowHolder.bindModel(Database.ALL_BOOKS.get(i));
}
@Override
public int getItemCount() {
return Database.ALL_BOOKS.size();
}
public static class RowHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView titleTextView;
TextView authorTextView;
public RowHolder(View row) {
super(row);
titleTextView = (TextView) row.findViewById(R.id.book_title);
authorTextView = (TextView) row.findViewById(R.id.book_author);
row.setOnClickListener(this);
}
public void bindModel(Book book) {
titleTextView.setText(book.getTitle());
authorTextView.setText(book.getAuthor());
}
@Override
public void onClick(View v) {
Book book = Database.ALL_BOOKS.get(getPosition());
Intent intent = new Intent(v.getContext(), BookDetailsActivity.class);
intent.putExtra(BookDetailsActivity.TITLE, book.getTitle());
intent.putExtra(BookDetailsActivity.AUTHOR, book.getAuthor());
v.getContext().startActivity(intent);
}
}
}