package org.smartpaws.recycler;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.smartpaws.R;
import org.smartpaws.fragments.ReminderFragment;
import org.smartpaws.notifications.AlarmService;
import org.smartpaws.recycler.cards.CardReminder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReminderRecyclerView extends RecyclerView.Adapter<CardReminder> {
private final ReminderFragment parent;
private final List<AlarmService.Reminder> reminders = new ArrayList<>();
public ReminderRecyclerView(AlarmService.Reminder[] reminders, ReminderFragment parent) {
this.parent = parent;
this.reminders.clear();
Collections.addAll(this.reminders, reminders);
}
@Override
public CardReminder onCreateViewHolder(ViewGroup viewGroup, int pos) {
return new CardReminder(
LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.card_reminder, viewGroup, false), reminders.get(pos), pos, ReminderRecyclerView.this);
}
@Override
public void onBindViewHolder(CardReminder card, int pos) {
AlarmService.Reminder reminder = reminders.get(pos);
card.setReminder(reminder);
card.setIsRecyclable(false);
}
@Override
public int getItemCount() {
return reminders.size();
}
public void removeItem(CardReminder cardReminder) {
int pos = -1;
if (this.reminders.contains(cardReminder.getReminder())) {
pos = this.reminders.indexOf(cardReminder.getReminder());
this.reminders.remove(cardReminder.getReminder());
if (getItemCount() == 0) {
parent.getRoot().findViewById(R.id.cardList).setVisibility(View.GONE);
parent.getRoot().findViewById(R.id.no_reminders_container).setVisibility(View.VISIBLE);
}
}
if (pos > -1) {
notifyItemRemoved(pos);
}
}
}