package com.florianmski.tracktoid.data;
import com.florianmski.tracktoid.utils.CursorHelper;
import com.florianmski.tracktoid.data.database.columns.BaseEntityColumns;
import com.florianmski.tracktoid.data.database.columns.EpisodeColumns;
import com.florianmski.tracktoid.data.database.columns.ShowColumns;
import com.uwetrottmann.trakt.v2.entities.BaseEntity;
import com.uwetrottmann.trakt.v2.entities.BaseIds;
import com.uwetrottmann.trakt.v2.entities.ImageSizes;
import com.uwetrottmann.trakt.v2.entities.Images;
import com.uwetrottmann.trakt.v2.entities.MoreImageSizes;
public abstract class TraktoidItem<E extends BaseEntity, I extends BaseIds>
{
protected E traktItem;
protected I ids;
protected SyncInfos syncInfos;
public TraktoidItem(E traktItem, I ids)
{
this.traktItem = traktItem;
this.ids = ids;
}
public abstract TraktBase getTraktBase();
public final E getTraktItem()
{
return traktItem;
}
public final I getIds()
{
return ids;
}
// if we have this item in db, syncInfos will not be null
public boolean isLocal()
{
return syncInfos != null;
}
public final SyncInfos getSyncInfos()
{
return syncInfos;
}
protected static void unpackEntity(CursorHelper ch, BaseEntity baseEntity)
{
baseEntity.title = ch.getString(BaseEntityColumns.TITLE);
baseEntity.updated_at = ch.getDate(BaseEntityColumns.UPDATED_AT);
}
protected static void unpackIds(CursorHelper ch, BaseIds ids)
{
ids.imdb = ch.getString(ShowColumns.ID_IMDB);
ids.tmdb = ch.getInt(ShowColumns.ID_TMDB);
ids.trakt = ch.getInt(ShowColumns.ID_TRAKT);
}
protected static void unpackImagesFanart(CursorHelper ch, Images images)
{
MoreImageSizes fanart = new MoreImageSizes();
fanart.full = ch.getString(ShowColumns.IMAGE_FANART_FULL);
fanart.medium = ch.getString(ShowColumns.IMAGE_FANART_MEDIUM);
fanart.thumb = ch.getString(ShowColumns.IMAGE_FANART_THUMB);
images.fanart = fanart;
}
protected static void unpackImagesPoster(CursorHelper ch, Images images)
{
MoreImageSizes poster = new MoreImageSizes();
poster.full = ch.getString(ShowColumns.IMAGE_POSTER_FULL);
poster.medium = ch.getString(ShowColumns.IMAGE_POSTER_MEDIUM);
poster.thumb = ch.getString(ShowColumns.IMAGE_POSTER_THUMB);
images.poster = poster;
}
protected static void unpackImagesScreenshot(CursorHelper ch, Images images)
{
MoreImageSizes screenshot = new MoreImageSizes();
screenshot.full = ch.getString(EpisodeColumns.IMAGE_SCREENSHOT_FULL);
screenshot.medium = ch.getString(EpisodeColumns.IMAGE_SCREENSHOT_MEDIUM);
screenshot.thumb = ch.getString(EpisodeColumns.IMAGE_SCREENSHOT_THUMB);
images.screenshot = screenshot;
}
protected static void unpackImagesBanner(CursorHelper ch, Images images)
{
ImageSizes banner = new ImageSizes();
banner.full = ch.getString(ShowColumns.IMAGE_BANNER);
images.banner = banner;
}
protected static void unpackImagesClearart(CursorHelper ch, Images images)
{
ImageSizes clearart = new ImageSizes();
clearart.full = ch.getString(ShowColumns.IMAGE_CLEARART);
images.clearart = clearart;
}
protected static void unpackImagesLogo(CursorHelper ch, Images images)
{
ImageSizes logo = new ImageSizes();
logo.full = ch.getString(ShowColumns.IMAGE_LOGO);
images.logo = logo;
}
protected static void unpackImagesThumb(CursorHelper ch, Images images)
{
ImageSizes thumb = new ImageSizes();
thumb.full = ch.getString(ShowColumns.IMAGE_THUMB);
images.thumb = thumb;
}
}