/*
* MediathekView
* Copyright (C) 2008 W. Xaver
* W.Xaver[at]googlemail.com
* http://zdfmediathk.sourceforge.net/
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package mediathek.daten;
import mSearch.tool.Log;
public class DatenAbo extends MVData<DatenAbo> {
//Tags Abo
public static final int ABO_NR = 0;
public static final int ABO_EINGESCHALTET = 1;
public static final int ABO_NAME = 2;
public static final int ABO_SENDER = 3;
public static final int ABO_THEMA = 4;
public static final int ABO_TITEL = 5;
public static final int ABO_THEMA_TITEL = 6;
public static final int ABO_IRGENDWO = 7;
public static final int ABO_MINDESTDAUER = 8;
public static final int ABO_MIN = 9;
public static final int ABO_ZIELPFAD = 10;
public static final int ABO_DOWN_DATUM = 11;
public static final int ABO_PSET = 12;
public static final String[] COLUMN_NAMES = {"Nr", "aktiv", "Name",
"Sender", "Thema", "Titel", "Thema-Titel",
"Irgendwo", "Dauer", "min/max", "Zielpfad", "letztes Abo", "Programmset"};
public static final String[] XML_NAMES = {"Nr", "aktiv", "Name",
"Sender", "Thema", "Titel", "Thema-Titel",
"Irgendwo", "Mindestdauer", "min_max", "Zielpfad", "letztes_Abo", "Programmset"};
public static final int MAX_ELEM = 13;
public static final String TAG = "Abonnement";
public static boolean[] spaltenAnzeigen = new boolean[MAX_ELEM];
public int mindestdauerMinuten;
public boolean min = true;
public String[] arr;
public int nr;
String[] titel, thema, irgendwo;
public DatenAbo() {
makeArr();
}
public DatenAbo(String name, String sender, String thema, String titel, String themaTitel, String irgendwo, int mmindestdauerMinuten, boolean min, String ziel, String pset) {
makeArr();
arr[ABO_NAME] = name;
arr[ABO_SENDER] = sender;
arr[ABO_THEMA] = thema;
arr[ABO_TITEL] = titel;
arr[ABO_THEMA_TITEL] = themaTitel;
arr[ABO_IRGENDWO] = irgendwo;
setMindestDauerMinuten(mmindestdauerMinuten);
arr[ABO_MIN] = Boolean.toString(min);
this.min = min;
arr[ABO_ZIELPFAD] = ziel;
arr[ABO_PSET] = pset;
}
public DatenAbo getCopy() {
DatenAbo ret = new DatenAbo();
System.arraycopy(this.arr, 0, ret.arr, 0, arr.length);
ret.mindestdauerMinuten = this.mindestdauerMinuten;
ret.min = this.min;
return ret;
}
public boolean isEmpty() {
//liefert TRUE wenn das Abo leer ist, also bei jedem Film ansprechen würde
//ist dann offensichtlich falsch!!
if (arr[ABO_SENDER].isEmpty()
&& arr[ABO_THEMA].isEmpty()
&& arr[ABO_TITEL].isEmpty()
&& arr[ABO_THEMA_TITEL].isEmpty()
&& arr[ABO_IRGENDWO].isEmpty()) {
return true;
} else {
return false;
}
}
public final void setMindestDauerMinuten(int d) {
mindestdauerMinuten = d;
arr[ABO_MINDESTDAUER] = String.valueOf(d);
}
public void setMindestDauerMinuten() {
if (this.arr[DatenAbo.ABO_MINDESTDAUER].equals("")) {
// für den ProgUpdate
mindestdauerMinuten = 0;
arr[ABO_MINDESTDAUER] = "0";
}
try {
mindestdauerMinuten = Integer.parseInt(this.arr[DatenAbo.ABO_MINDESTDAUER]);
} catch (Exception ex) {
Log.errorLog(462558700, ex);
mindestdauerMinuten = 0;
arr[ABO_MINDESTDAUER] = "0";
}
}
public boolean aboIstEingeschaltet() {
if (arr[DatenAbo.ABO_EINGESCHALTET].equals("")) {
aboEin();
return true;
}
return Boolean.parseBoolean(arr[DatenAbo.ABO_EINGESCHALTET]);
}
public static boolean anzeigen(int i) {
return spaltenAnzeigen == null || spaltenAnzeigen[i];
}
/*
public boolean toggleAboEinAus() {
// Abo EinAus wird geändert und der Zustand NACH der Änderung
// wird zurückgegeben
if (arr[DatenAbo.ABO_EINGESCHALTET_NR].equals("")) {
aboEin();
}
arr[DatenAbo.ABO_EINGESCHALTET_NR] = String.valueOf(!Boolean.parseBoolean(arr[DatenAbo.ABO_EINGESCHALTET_NR]));
return Boolean.parseBoolean(arr[DatenAbo.ABO_EINGESCHALTET_NR]);
}
*/
/*
public void aboAus() {
arr[DatenAbo.ABO_EINGESCHALTET_NR] = String.valueOf(false);
}
*/
public void aboEin() {
arr[DatenAbo.ABO_EINGESCHALTET] = String.valueOf(true);
}
public void aufMichKopieren(DatenAbo datenAbo) {
System.arraycopy(datenAbo.arr, 0, arr, 0, arr.length);
this.mindestdauerMinuten = datenAbo.mindestdauerMinuten;
this.min = datenAbo.min;
}
private void makeArr() {
arr = new String[MAX_ELEM];
for (int i = 0; i < arr.length; ++i) {
arr[i] = "";
}
// neue Abos sind immer ein
aboEin();
}
@Override
public int compareTo(DatenAbo arg0) {
return sorter.compare(arr[ABO_NAME], arg0.arr[ABO_NAME]);
}
}