package com.battlelancer.seriesguide.settings;
import android.content.Context;
import android.preference.PreferenceManager;
import static com.battlelancer.seriesguide.provider.SeriesGuideContract.Movies;
/**
* Provides settings used to sort displayed movies in
* {@link com.battlelancer.seriesguide.ui.MoviesBaseFragment} subclasses.
*/
public class MoviesDistillationSettings {
public static class MoviesSortOrderChangedEvent {
}
public static String KEY_SORT_ORDER = "com.battlelancer.seriesguide.movies.sort.order";
/**
* Builds an appropriate SQL sort statement for sorting movies.
*/
public static String getSortQuery(Context context) {
int sortOrderId = getSortOrderId(context);
if (sortOrderId == MoviesSortOrder.TITLE_REVERSE_ALHPABETICAL_ID) {
if (DisplaySettings.isSortOrderIgnoringArticles(context)) {
return Movies.SORT_TITLE_REVERSE_ALPHACETICAL_NO_ARTICLE;
} else {
return Movies.SORT_TITLE_REVERSE_ALPHACETICAL;
}
} else if (sortOrderId == MoviesSortOrder.RELEASE_DATE_NEWEST_FIRST_ID) {
return Movies.SORT_RELEASE_DATE_NEWEST_FIRST;
} else if (sortOrderId == MoviesSortOrder.RELEASE_DATE_OLDEST_FIRST_ID) {
return Movies.SORT_RELEASE_DATE_OLDEST_FIRST;
}
if (DisplaySettings.isSortOrderIgnoringArticles(context)) {
return Movies.SORT_TITLE_ALPHABETICAL_NO_ARTICLE;
} else {
return Movies.SORT_TITLE_ALPHABETICAL;
}
}
/**
* Returns the id as of
* {@link com.battlelancer.seriesguide.settings.MoviesDistillationSettings.MoviesSortOrder}
* of the current movie sort order.
*/
public static int getSortOrderId(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context)
.getInt(KEY_SORT_ORDER, MoviesSortOrder.TITLE_ALPHABETICAL_ID);
}
public interface MoviesSortOrder {
int TITLE_ALPHABETICAL_ID = 0;
int TITLE_REVERSE_ALHPABETICAL_ID = 1;
int RELEASE_DATE_NEWEST_FIRST_ID = 2;
int RELEASE_DATE_OLDEST_FIRST_ID = 3;
}
}