package com.florianmski.tracktoid.data; import android.database.Cursor; import com.florianmski.tracktoid.utils.CursorHelper; import com.florianmski.tracktoid.data.database.columns.MovieColumns; import com.florianmski.tracktoid.data.database.columns.ShowColumns; import com.uwetrottmann.trakt.v2.entities.Images; import com.uwetrottmann.trakt.v2.entities.Movie; import com.uwetrottmann.trakt.v2.entities.MovieIds; import java.util.ArrayList; import java.util.List; public class WMovie extends TraktoidItem<Movie, MovieIds> { public WMovie(Movie movie) { super(movie, movie.ids); } public static WMovie unpack(Cursor cursor) { Movie movie = new Movie(); movie.ids = new MovieIds(); movie.images = new Images(); CursorHelper ch = new CursorHelper(cursor); unpackEntity(ch, movie); unpackIds(ch, movie.ids); unpackImagesFanart(ch, movie.images); unpackImagesPoster(ch, movie.images); unpackImagesBanner(ch, movie.images); unpackImagesClearart(ch, movie.images); unpackImagesLogo(ch, movie.images); unpackImagesThumb(ch, movie.images); movie.certification = ch.getString(MovieColumns.CERTIFICATION); movie.genres = ch.getStringList(ShowColumns.GENRES); movie.homepage = ch.getString(MovieColumns.HOMEPAGE); movie.language = ch.getString(MovieColumns.LANGUAGE); movie.overview = ch.getString(MovieColumns.OVERVIEW); movie.released = ch.getDate(MovieColumns.RELEASED); movie.runtime = ch.getInt(MovieColumns.RUNTIME); movie.tagline = ch.getString(MovieColumns.TAGLINE); movie.trailer = ch.getString(MovieColumns.TRAILER); movie.year = ch.getInt(MovieColumns.YEAR); movie.rating = ch.getDouble(MovieColumns.PUBLIC_RATING); movie.votes = ch.getInt(MovieColumns.VOTES); movie.ids.slug = ch.getString(MovieColumns.ID_SLUG); WMovie wMovie = new WMovie(movie); wMovie.syncInfos = new SyncInfos(); wMovie.syncInfos.collectedAt = ch.getDate(MovieColumns.COLLECTED_AT); wMovie.syncInfos.ratedAt = ch.getDate(MovieColumns.RATED_AT); wMovie.syncInfos.watchlistedAt = ch.getDate(MovieColumns.WATCHLISTED_AT); wMovie.syncInfos.lastWatchedAt = ch.getDate(MovieColumns.LAST_WATCHED_AT); wMovie.syncInfos.collected = ch.getBoolean(MovieColumns.COLLECTED); wMovie.syncInfos.plays = ch.getInt(MovieColumns.PLAYS); wMovie.syncInfos.rating = ch.getRating(MovieColumns.RATING); wMovie.syncInfos.watched = ch.getBoolean(MovieColumns.WATCHED); wMovie.syncInfos.watchlisted = ch.getBoolean(MovieColumns.WATCHLISTED); return wMovie; } public static List<WMovie> unpackList(Cursor cursor) { List<WMovie> movies = new ArrayList<WMovie>(); if(cursor.moveToFirst()) { do movies.add(unpack(cursor)); while(cursor.moveToNext()); } return movies; } public static List<WMovie> toList(List<Movie> items) { List<WMovie> traktObjects = new ArrayList<WMovie>(); for(Movie item : items) traktObjects.add(new WMovie(item)); return traktObjects; } @Override public TraktBase getTraktBase() { return TraktBase.fromMovie(this); } }