package com.florianmski.tracktoid.data; import android.database.Cursor; import com.florianmski.tracktoid.utils.CursorHelper; import com.florianmski.tracktoid.data.database.columns.EpisodeColumns; import com.uwetrottmann.trakt.v2.entities.Episode; import com.uwetrottmann.trakt.v2.entities.EpisodeIds; import com.uwetrottmann.trakt.v2.entities.Images; import java.util.ArrayList; import java.util.List; public class WEpisode extends TraktoidItem<Episode, EpisodeIds> { public String showId; public WEpisode(Episode episode, String showId) { super(episode, episode.ids); this.showId = showId; } public static WEpisode unpack(Cursor cursor) { Episode episode = new Episode(); episode.ids = new EpisodeIds(); episode.images = new Images(); CursorHelper ch = new CursorHelper(cursor); unpackEntity(ch, episode); unpackIds(ch, episode.ids); unpackImagesScreenshot(ch, episode.images); episode.first_aired = ch.getDate(EpisodeColumns.FIRST_AIRED); episode.number = ch.getInt(EpisodeColumns.NUMBER); episode.number_abs = ch.getInt(EpisodeColumns.NUMBER_ABS); episode.overview = ch.getString(EpisodeColumns.OVERVIEW); episode.season = ch.getInt(EpisodeColumns.SEASON); episode.rating = ch.getDouble(EpisodeColumns.PUBLIC_RATING); episode.votes = ch.getInt(EpisodeColumns.VOTES); episode.ids.tvdb = ch.getInt(EpisodeColumns.ID_TVDB); episode.ids.tvrage = ch.getInt(EpisodeColumns.ID_TVRAGE); String showId = ch.getString(EpisodeColumns.SHOW_ID); WEpisode wEpisode = new WEpisode(episode, showId); wEpisode.syncInfos = new SyncInfos(); wEpisode.syncInfos.collectedAt = ch.getDate(EpisodeColumns.COLLECTED_AT); wEpisode.syncInfos.ratedAt = ch.getDate(EpisodeColumns.RATED_AT); wEpisode.syncInfos.lastWatchedAt = ch.getDate(EpisodeColumns.LAST_WATCHED_AT); wEpisode.syncInfos.watchlistedAt = ch.getDate(EpisodeColumns.WATCHLISTED_AT); wEpisode.syncInfos.collected = ch.getBoolean(EpisodeColumns.COLLECTED); wEpisode.syncInfos.rating = ch.getRating(EpisodeColumns.RATING); wEpisode.syncInfos.watched = ch.getBoolean(EpisodeColumns.WATCHED); wEpisode.syncInfos.watchlisted = ch.getBoolean(EpisodeColumns.WATCHLISTED); wEpisode.syncInfos.plays = ch.getInt(EpisodeColumns.PLAYS); return wEpisode; } public static List<WEpisode> unpackList(Cursor cursor) { List<WEpisode> episodes = new ArrayList<>(); if(cursor.moveToFirst()) { do episodes.add(unpack(cursor)); while(cursor.moveToNext()); } return episodes; } @Override public TraktBase getTraktBase() { return TraktBase.fromEpisode(this); } }