package info.nightscout.androidaps.plugins.Overview; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; /** * Created by mike on 03.12.2016. */ public class NotificationStore { private static Logger log = LoggerFactory.getLogger(NotificationStore.class); public List<Notification> store = new ArrayList<Notification>(); public NotificationStore() { } public class NotificationComparator implements Comparator<Notification> { @Override public int compare(Notification o1, Notification o2) { return o1.level - o2.level; } } public Notification get(int index) { return store.get(index); } public void add(Notification n) { log.info("Notification received: " + n.text); for (int i = 0; i < store.size(); i++) { if (get(i).id == n.id) { get(i).date = n.date; get(i).validTo = n.validTo; return; } } store.add(n); Collections.sort(store, new NotificationComparator()); } public void remove(int id) { for (int i = 0; i < store.size(); i++) { if (get(i).id == id) { store.remove(i); return; } } } public void removeExpired() { for (int i = 0; i < store.size(); i++) { Notification n = get(i); if (n.validTo.getTime() != 0 && n.validTo.getTime() < new Date().getTime()) { store.remove(i); i--; } } } }