package org.gdg.frisbee.android.eventseries;
import android.content.Context;
import org.gdg.frisbee.android.BuildConfig;
import org.gdg.frisbee.android.R;
import org.gdg.frisbee.android.common.GdgNavDrawerActivity;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import java.util.ArrayList;
import java.util.List;
public final class TaggedEventSeriesFactory {
private static final DateTime START_TIME_DEVFEST = new DateTime(2016, 9, 1, 0, 0, DateTimeZone.UTC);
private static final DateTime START_TIME_WTM = new DateTime(2017, 2, 1, 0, 0, DateTimeZone.UTC);
private static final DateTime START_TIME_STUDY_JAMS = new DateTime(2017, 1, 15, 0, 0, DateTimeZone.UTC);
private static final DateTime START_TIME_IOEXTENDED = new DateTime(2017, 5, 1, 0, 0, DateTimeZone.UTC);
private static final DateTime START_TIME_GCP_NEXT = new DateTime(2017, 3, 15, 0, 0, DateTimeZone.UTC);
private static final DateTime END_TIME_DEVFEST = new DateTime(2017, 1, 1, 0, 0, DateTimeZone.UTC);
private static final DateTime END_TIME_WTM = new DateTime(2017, 4, 1, 0, 0, DateTimeZone.UTC);
private static final DateTime END_TIME_STUDY_JAMS = new DateTime(2017, 5, 1, 0, 0, DateTimeZone.UTC);
private static final DateTime END_TIME_IOEXTENDED = new DateTime(2017, 6, 1, 0, 0, DateTimeZone.UTC);
private static final DateTime END_TIME_GCP_NEXT = new DateTime(2017, 4, 15, 0, 0, DateTimeZone.UTC);
public static List<TaggedEventSeries> createAvailableEventSeries(Context context) {
List<TaggedEventSeries> seriesList = new ArrayList<>();
//Add DevFest
addTaggedEventSeriesIfDateFits(seriesList, new TaggedEventSeries(context,
R.style.Theme_GDG_Special_DevFest,
"devfest",
GdgNavDrawerActivity.DRAWER_DEVFEST,
START_TIME_DEVFEST,
END_TIME_DEVFEST));
//Add Women Techmakers
addTaggedEventSeriesIfDateFits(seriesList, new TaggedEventSeries(context,
R.style.Theme_GDG_Special_Wtm,
"wtm",
GdgNavDrawerActivity.DRAWER_WTM,
START_TIME_WTM,
END_TIME_WTM));
//Add Android Fundamentals Study Jams
addTaggedEventSeriesIfDateFits(seriesList, new TaggedEventSeries(context,
R.style.Theme_GDG_Special_StudyJams,
"studyjam",
GdgNavDrawerActivity.DRAWER_STUDY_JAM,
START_TIME_STUDY_JAMS,
END_TIME_STUDY_JAMS));
//Add IO Extended
addTaggedEventSeriesIfDateFits(seriesList, new TaggedEventSeries(context,
R.style.Theme_GDG_Special_IOExtended,
"i-oextended",
GdgNavDrawerActivity.DRAWER_IO_EXTENDED,
START_TIME_IOEXTENDED,
END_TIME_IOEXTENDED));
//Add GCP NEXT
addTaggedEventSeriesIfDateFits(seriesList, new TaggedEventSeries(context,
R.style.Theme_GDG_Special_GCPNEXT,
"gcpnext",
GdgNavDrawerActivity.DRAWER_GCP_NEXT,
START_TIME_GCP_NEXT,
END_TIME_GCP_NEXT));
return seriesList;
}
private static void addTaggedEventSeriesIfDateFits(List<TaggedEventSeries> list,
TaggedEventSeries newSeries) {
DateTime now = DateTime.now();
if (BuildConfig.DEBUG || (now.isAfter(newSeries.getStartDate())
&& now.isBefore(newSeries.getEndDate()))) {
list.add(newSeries);
}
}
private TaggedEventSeriesFactory() {
//no instance
}
}