ChaptersHolder.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package eu.kanade.mangafeed.ui.holder;
  2. import android.content.Context;
  3. import android.graphics.Color;
  4. import android.support.v4.content.ContextCompat;
  5. import android.support.v7.widget.RecyclerView;
  6. import android.view.View;
  7. import android.widget.ImageView;
  8. import android.widget.TextView;
  9. import butterknife.Bind;
  10. import butterknife.ButterKnife;
  11. import eu.kanade.mangafeed.R;
  12. import eu.kanade.mangafeed.data.models.Chapter;
  13. import eu.kanade.mangafeed.ui.adapter.ChaptersAdapter;
  14. public class ChaptersHolder extends RecyclerView.ViewHolder implements
  15. View.OnClickListener, View.OnLongClickListener {
  16. private ChaptersAdapter adapter;
  17. @Bind(R.id.chapter_title) TextView title;
  18. @Bind(R.id.chapter_download_image) ImageView download_icon;
  19. @Bind(R.id.chapter_pages) TextView pages;
  20. public ChaptersHolder(View view) {
  21. super(view);
  22. ButterKnife.bind(this, view);
  23. }
  24. public ChaptersHolder(View view, final ChaptersAdapter adapter) {
  25. this(view);
  26. this.adapter = adapter;
  27. itemView.setOnClickListener(this);
  28. itemView.setOnLongClickListener(this);
  29. }
  30. public void onSetValues(Context context, Chapter chapter) {
  31. title.setText(chapter.name);
  32. download_icon.setImageResource(R.drawable.ic_file_download_black_48dp);
  33. if (chapter.read) {
  34. title.setTextColor(ContextCompat.getColor(context, R.color.chapter_read_text));
  35. } else {
  36. title.setTextColor(Color.BLACK);
  37. }
  38. if (chapter.last_page_read > 0 && !chapter.read) {
  39. pages.setText(context.getString(R.string.chapter_progress, chapter.last_page_read + 1));
  40. } else {
  41. pages.setText("");
  42. }
  43. toggleActivation();
  44. }
  45. private void toggleActivation() {
  46. itemView.setActivated(adapter.isSelected(getAdapterPosition()));
  47. }
  48. @Override
  49. public void onClick(View v) {
  50. if (adapter.clickListener.onListItemClick(getAdapterPosition()))
  51. toggleActivation();
  52. }
  53. @Override
  54. public boolean onLongClick(View v) {
  55. adapter.clickListener.onListItemLongClick(getAdapterPosition());
  56. toggleActivation();
  57. return true;
  58. }
  59. }