package dk.dr.radio.diverse;
import android.content.Intent;
import com.gemius.sdk.MobilePlugin;
import java.util.HashMap;
import java.util.HashSet;
import java.util.TreeSet;
import dk.dr.radio.akt.Afspiller_frag;
import dk.dr.radio.akt.AlleUdsendelserAtilAA_frag;
import dk.dr.radio.akt.DramaOgBog_frag;
import dk.dr.radio.akt.FangBrowseIntent_akt;
import dk.dr.radio.akt.Favoritprogrammer_frag;
import dk.dr.radio.akt.Hentede_udsendelser_frag;
import dk.dr.radio.akt.Indstillinger_akt;
import dk.dr.radio.akt.Kanal_frag;
import dk.dr.radio.akt.Kanaler_frag;
import dk.dr.radio.akt.Kontakt_info_om_frag;
import dk.dr.radio.akt.P4kanalvalg_frag;
import dk.dr.radio.akt.Programserie_frag;
import dk.dr.radio.akt.Senest_lyttede_frag;
import dk.dr.radio.akt.Soeg_efter_program_frag;
import dk.dr.radio.akt.Udsendelse_frag;
import dk.dr.radio.data.HentedeUdsendelser;
import dk.dr.radio.v3.R;
/**
* Created by j on 28-11-14.
*/
public class Sidevisning {
private static final HashMap<Class, String> m = new HashMap<Class, String>();
private static Sidevisning instans = null;
public static Sidevisning i() {
if (instans==null && App.ÆGTE_DR) try {
/*
Klasserne til Gallup er ikke med i offentligt repo, derfor indlæses klassen dynamisk
instans = new GallupSidevisning();
Generér ny version af Gallup JAR-fil med
unzip /home/j/android/dr-radio-android/gallupstatistik/build/outputs/aar/gallupstatistik-debug.aar classes.jar -d /tmp
mv /tmp/classes.jar /home/j/android/dr-radio-android/DRRadiov35/app/libs/gallupstatistik.jar
*/
instans = ((Class<? extends Sidevisning>) Class.forName("dk.dr.radio.diverse.GallupSidevisning")).newInstance();
} catch (Exception e) {
Log.rapporterFejl(e);
}
if (instans==null) {
instans = new Sidevisning();
}
return instans;
}
public static final String DEL = "del_udsendelse";
public static final String KONTAKT_SKRIV = "kontakt__skriv_meddelelse";
static {
m.put(Afspiller_frag.class, "afspiller_popop");
m.put(AlleUdsendelserAtilAA_frag.class, "alle_udsendelser");
m.put(DramaOgBog_frag.class, "drama_og_bog");
m.put(FangBrowseIntent_akt.class, "fang_browser");
m.put(Favoritprogrammer_frag.class, "favoritter");
m.put(Hentede_udsendelser_frag.class, "hentede_udsendelser");
m.put(HentedeUdsendelser.class, "hentet_en_udsendelse");
m.put(Indstillinger_akt.class, "indstillinger");
m.put(Kanal_frag.class, "kanal");
m.put(Kanaler_frag.class, "kanaler");
m.put(Kontakt_info_om_frag.class, "kontakt");
m.put(P4kanalvalg_frag.class, "p4_kanalvalg");
m.put(Programserie_frag.class, "programserie");
m.put(Senest_lyttede_frag.class, "senest_lyttede");
m.put(Soeg_efter_program_frag.class, "soeg");
m.put(Udsendelse_frag.class, "udsendelse");
m.put(String.class, DEL); // bare en eller anden unik klasse - det er værdien der skal bruges
m.put(Integer.class, KONTAKT_SKRIV); // bare en eller anden unik klasse - det er værdien der skal bruges
}
private final static HashSet<String> besøgt = new HashSet<String>();
private static Intent intent;
public void vist(String side, String slug) {
//if (!App.PRODUKTION) App.kortToast("vist "+side+" "+slug);
// Gemius sidevisningsstatistik
// appname=MyApp|version=1.0.0
// app=DRRadio|platform=Android|page=Z|action=W|version=1.0.0
// app = DRNyheder/DRRadio/DRTV/DRRamasjang/DRUltra
// Z = notset (gælder alle apps, undtagen nyhedsappen)
// W = begin/background/termination (gælder alle apps, undtagen nyhedsappen)
besøgt.add(side);
String data = "app=DRRadio|platform=Android|page="+side+(slug==null ? "" : "/" + slug)+"|action=pageload|version="+App.versionsnavn;
sendTilGemius(data);
}
private void sendTilGemius(String data) {
if (App.fejlsøgning || App.EMULATOR) Log.d("sendTilGemius "+data);
if (intent==null) {
String nøgle = App.instans.getString(R.string.gemius_sidevisninsstatistik_nøgle);
if (nøgle.length()==0) return; // Nøgle til indrapportering mangler
if (!App.prefs.getBoolean("Rapportér statistik", true)) return; // statistikrapportering fravalgt
intent = new Intent(App.instans, MobilePlugin.class);
intent.putExtra(MobilePlugin.IDENTIFIER, nøgle);
intent.putExtra(MobilePlugin.SERVERPREFIX, "main");
}
intent.putExtra(MobilePlugin.EXTRAPARAMS, data);
App.instans.startService(intent);
}
public static void vist(Class fk, String slug) {
String side = m.get(fk);
if (side==null) {
if (App.ÆGTE_DR) Log.rapporterFejl(new IllegalArgumentException("Klasse mangler navn til sidevisning: "+fk));
side = fk.getSimpleName();
m.put(fk, side);
}
i().vist(side, slug);
}
public static void vist(Class fk) {
vist(fk, null);
}
public static void vist(String side) {
i().vist(side, null);
}
/** Giver sorteret af viste sider, som en streng */
public static String getViste() {
return new TreeSet<String>(besøgt).toString();
}
/** Giver sorteret af ikke-viste sider, som en streng */
public static String getIkkeViste() {
TreeSet<String> ejBesøgt = new TreeSet<String>(m.values());
ejBesøgt.removeAll(besøgt);
return ejBesøgt.toString();
}
public void synlig(boolean synligNu) {
if (App.fejlsøgning) App.kortToast("synligNu = "+synligNu);
String data = "app=DRRadio|platform=Android|page=notset|action="+(synligNu?"begin":"background")+"|version="+App.versionsnavn;
sendTilGemius(data);
}
}