package murex.dojo.hellobooks.app; import static murex.dojo.hellobooks.app.Constants.NAME; import java.util.List; import com.bumptech.glide.Glide; 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.ImageView; import android.widget.TextView; public class BooksAdapter extends RecyclerView.Adapter<BooksAdapter.ViewHolder> implements View.OnClickListener { private final List<Book> booksList; private final Context context; private final RecyclerView mRecyclerView; public BooksAdapter(List<Book> booksList, Context context, RecyclerView mRecyclerView) { this.booksList = booksList; this.context = context; this.mRecyclerView = mRecyclerView; } @Override public void onClick(View view) { int itemPosition = mRecyclerView.getChildPosition(view); String bookName = booksList.get(itemPosition).title(); showBookDetails(bookName); } private void showBookDetails(String bookName) { final Intent detailsIntent = new Intent(context, BookDetails.class); detailsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); detailsIntent.putExtra(NAME, bookName); context.startActivity(detailsIntent); } @Override public BooksAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { final View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.books_list_item, parent, false); v.setOnClickListener(this); return new ViewHolder(v); } @Override public void onBindViewHolder(BooksAdapter.ViewHolder holder, int position) { holder.titleTextView.setText(booksList.get(position).title()); Glide.with(context).load(booksList.get(position).imageUrl()).into(holder.thumbnailImageView); } @Override public int getItemCount() { return booksList.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { public TextView titleTextView; public ImageView thumbnailImageView; public ViewHolder(View itemView) { super(itemView); titleTextView = (TextView) itemView.findViewById(R.id.book_title_text_view); thumbnailImageView = (ImageView) itemView.findViewById(R.id.book_thumbnail_image_view); } } }