package com.florianmski.tracktoid.ui.fragments.library;
import android.database.Cursor;
import com.florianmski.tracktoid.TraktoidTheme;
import com.florianmski.tracktoid.data.WMovie;
import com.florianmski.tracktoid.data.database.ProviderSchematic;
import com.florianmski.tracktoid.data.database.columns.MovieColumns;
import com.florianmski.tracktoid.rx.observables.CursorObservable;
import java.util.List;
import rx.Observable;
public class LibraryMovieFragment extends LibraryFragment<WMovie>
{
public static LibraryMovieFragment newInstance()
{
return new LibraryMovieFragment();
}
public LibraryMovieFragment() {}
@Override
protected Observable<List<WMovie>> createObservable()
{
return Observable.create(new CursorObservable<List<WMovie>>(
getActivity(),
ProviderSchematic.Movies.CONTENT_URI,
ProviderSchematic.Movies.PROJECTION,
generateSelection(),
generateSelectionArgs(),
MovieColumns.TITLE + " ASC") {
@Override
protected List<WMovie> toObject(Cursor cursor) {
return WMovie.unpackList(cursor);
}
});
}
private String generateSelection()
{
String selection = null;
if(currentFilter == FILTER_PLAYS)
selection = MovieColumns.WATCHED + "=?";
else if(currentFilter == FILTER_COLLECTION)
selection = MovieColumns.COLLECTED + "=?";
else if(currentFilter == FILTER_WATCHLIST)
selection = MovieColumns.WATCHLISTED + "=?";
if(filterHideWatched)
{
if(selection == null)
selection = MovieColumns.WATCHED + "=?";
else
selection += " AND " + MovieColumns.WATCHED + "=?";
}
return selection;
}
private String[] generateSelectionArgs()
{
if(currentFilter != FILTER_ALL)
{
if(filterHideWatched)
return new String[]{"1", "0"};
else
return new String[]{"1"};
}
else if(filterHideWatched)
return new String[]{"0"};
else
return null;
}
@Override
public TraktoidTheme getTheme()
{
return TraktoidTheme.MOVIE;
}
}