AnnKrepchenko

Untitled

Aug 1st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.66 KB | None | 0 0
  1.  
  2. public class RecordsAdapter extends RecyclerView.Adapter<RecordsAdapter.RecordsVH> {
  3.  
  4.     private RecordsClickListener listener;
  5.     private List<Record> records;
  6.     private LayoutInflater layoutInflater;
  7.  
  8.     public interface RecordsClickListener {
  9.         void onRecordClicked(int pos, Record record);
  10.  
  11.         void removeFromFavourites(int pos, Record record);
  12.  
  13.         void addToFavourites(int pos, Record record);
  14.     }
  15.  
  16.     public RecordsAdapter(Context context, RecordsClickListener listener) {
  17.         layoutInflater = LayoutInflater.from(context);
  18.         records = new ArrayList<>();
  19.         this.listener = listener;
  20.     }
  21.  
  22.     @Override
  23.     public RecordsVH onCreateViewHolder(ViewGroup parent, int viewType) {
  24.         View view = layoutInflater.inflate(R.layout.item_video, parent, false);
  25.         return new RecordsVH(view, listener);
  26.     }
  27.  
  28.     @Override
  29.     public void onBindViewHolder(RecordsVH holder, int position) {
  30.         Record record = records.get(position);
  31.         holder.tvVideoName.setText(record.getTitle());
  32.         holder.tvLink.setText(record.getLink());
  33.         holder.cbFavourite.setChecked(record.isFavourite());
  34.     }
  35.  
  36.     @Override
  37.     public int getItemCount() {
  38.         return records.size();
  39.     }
  40.  
  41.     public void setRecords(List<Record> records) {
  42.         this.records.clear();
  43.         this.records.addAll(records);
  44.         notifyDataSetChanged();
  45.     }
  46.  
  47.     public void updateRecord(int pos, Record record) {
  48.         records.remove(pos);
  49.         records.add(pos, record);
  50.         notifyItemChanged(pos, record);
  51.     }
  52.  
  53.     public void removeRecord(int pos) {
  54.         records.remove(pos);
  55.         notifyItemRemoved(pos);
  56.     }
  57.  
  58.     class RecordsVH extends RecyclerView.ViewHolder {
  59.  
  60.         @BindView(R.id.tvVideoName)
  61.         TextView tvVideoName;
  62.         @BindView(R.id.tvFramesCount)
  63.         TextView tvLink;
  64.         @BindView(R.id.cbFavourite)
  65.         CheckBox cbFavourite;
  66.  
  67.  
  68.         public RecordsVH(View itemView, final RecordsClickListener listener) {
  69.             super(itemView);
  70.             ButterKnife.bind(this, itemView);
  71.         }
  72.  
  73.         @OnClick(R.id.llContainer)
  74.         void onItemClicked() {
  75.             listener.onRecordClicked(getAdapterPosition(), records.get(getAdapterPosition()));
  76.         }
  77.  
  78.         @OnClick(R.id.cbFavourite)
  79.         void onCheckBoxClicked() {
  80.             Record record = records.get(getAdapterPosition());
  81.             if (!record.isFavourite()) {
  82.                 listener.addToFavourites(getAdapterPosition(), record);
  83.             } else {
  84.                 listener.removeFromFavourites(getAdapterPosition(), record);
  85.             }
  86.         }
  87.  
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment