package dk.dr.radio.data; import java.util.ArrayList; import java.util.Arrays; import java.util.TreeMap; import java.util.TreeSet; import dk.dr.radio.diverse.App; import dk.dr.radio.diverse.Log; /** * Created by j on 01-03-14. */ public class Programserie { //implements Serializable { // private static final long serialVersionUID = 1L; public String titel; public String undertitel = ""; public String beskrivelse; public String billedeUrl; // Bemærk - kan være tom public String slug; public int antalUdsendelser; public String urn; private ArrayList<Udsendelse> udsendelserListe; private TreeMap<Integer, ArrayList<Udsendelse>> udsendelserListeFraOffset = new TreeMap<Integer, ArrayList<Udsendelse>>(); private TreeSet<Udsendelse> udsendelserSorteret; public ArrayList<Udsendelse> getUdsendelser() { return udsendelserListe; } public void tilføjUdsendelser(int offset, ArrayList<Udsendelse> uds) { Log.d(this + " tilføjUdsendelser:" + (udsendelserListe == null ? "nul" : udsendelserListe.size()) + " får tilføjet " + (uds == null ? "nul" : uds.size()) + " elementer på offset="+offset); if (App.fejlsøgning) Log.d(this + " tilføjUdsendelser:" + (udsendelserListe == null ? "nul" : udsendelserListe.size()) + " elem liste:\n" + udsendelserListe + "\nfår tilføjet " + (uds == null ? "nul" : uds.size()) + " elem:\n" + uds); udsendelserListeFraOffset.put(offset, uds); if (App.fejlsøgning) Log.d("tilføjUdsendelser udsendelserListeFraOffset: " + udsendelserListeFraOffset.keySet()); if (this.udsendelserListe == null) { udsendelserSorteret = new TreeSet<Udsendelse>(uds); udsendelserListe = new ArrayList<Udsendelse>(uds); } else { udsendelserListe.clear(); for (ArrayList<Udsendelse> lx : udsendelserListeFraOffset.values()) { udsendelserListe.addAll(lx); } udsendelserSorteret.addAll(uds); if (!Arrays.equals(udsendelserListe.toArray(), udsendelserSorteret.toArray())) { Log.d("tilføjUdsendelser INKONSISTENS? nu:\nlisten:" + udsendelserListe + "\nsorter:" + udsendelserSorteret); } // udsendelserListe.clear(); // udsendelserListe.addAll(udsendelserSorteret); } //Log.d("tilføjUdsendelser nu:\n"+ udsendelserListe); /* { ArrayList<Udsendelse> udsendelser = this.udsendelserListe; Collections.sort(udsendelser); udsendelser = new ArrayList<Udsendelse>(new TreeSet<Udsendelse>(udsendelser)); Log.d("tilføjUdsendelser sorteret ville være:\n"+udsendelser); } */ } public static int findUdsendelseIndexFraSlug(ArrayList<Udsendelse> udsendelserListe, String slug) { int n = -1; if (udsendelserListe != null) { for (int i = 0; i < udsendelserListe.size(); i++) { if (slug.equals(udsendelserListe.get(i).slug)) n = i; } } return n; } @Override public String toString() { return "ps:" + slug; } }