New options to sort movies and tv shows: name or date added
Ignore prefixes on movies and tv shows is now an option in the list menu Set lint to not complain about missing translations Started moving things out of Settings.java and into SharedPreferences
This commit is contained in:
parent
30b1c117d3
commit
3fe5594f91
|
@ -39,6 +39,11 @@ android {
|
|||
}
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
// Too much trouble keeping all translations in sync
|
||||
disable 'MissingTranslation'
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
exclude 'META-INF/DEPENDENCIES'
|
||||
exclude 'META-INF/NOTICE'
|
||||
|
|
|
@ -41,16 +41,14 @@ public class Settings {
|
|||
|
||||
// Tags to save the values
|
||||
private static final String CURRENT_HOST_ID = "CURRENT_HOST_ID";
|
||||
private static final String MAX_CAST_PICTURES = "MAX_CAST_PICTURES";
|
||||
private static final String MOVIES_FILTER_HIDE_WATCHED = "MOVIES_FILTER_HIDE_WATCHED";
|
||||
private static final String TVSHOWS_FILTER_HIDE_WATCHED = "TVSHOWS_FILTER_HIDE_WATCHED";
|
||||
private static final String TVSHOW_EPISODES_FILTER_HIDE_WATCHED = "TVSHOW_EPISODES_FILTER_HIDE_WATCHED";
|
||||
|
||||
private static final String SHOW_THANKS_FOR_COFFEE_MESSAGE = "SHOW_THANKS_FOR_COFFEE_MESSAGE";
|
||||
private static final String HAS_BOUGHT_COFFEE = "HAS_BOUGHT_COFFEE";
|
||||
|
||||
// Default values
|
||||
private static final int DEFAULT_MAX_CAST_PICTURES = 12;
|
||||
// Maximum pictures to show on cast list (-1 to show all)
|
||||
public static final int DEFAULT_MAX_CAST_PICTURES = 12;
|
||||
|
||||
/**
|
||||
* Default Shared Preferences keys.
|
||||
|
@ -63,8 +61,36 @@ public class Settings {
|
|||
public static final String KEY_PREF_ABOUT = "pref_about";
|
||||
public static final String KEY_PREF_COFFEE = "pref_coffee";
|
||||
|
||||
// Filter watched movies on movie list
|
||||
public static final String KEY_PREF_MOVIES_FILTER_HIDE_WATCHED = "movies_filter_hide_watched";
|
||||
// Sort order on movies
|
||||
public static final String KEY_PREF_MOVIES_SORT_ORDER = "movies_sort_order";
|
||||
// Ignore articles on movie sorting
|
||||
public static final String KEY_PREF_MOVIES_IGNORE_PREFIXES = "movies_ignore_prefixes";
|
||||
|
||||
// Filter watched tv shows on tvshow list
|
||||
public static final String KEY_PREF_TVSHOWS_FILTER_HIDE_WATCHED = "tvshows_filter_hide_watched";
|
||||
public static final String KEY_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED = "tvshow_episodes_filter_hide_watched";
|
||||
// Sort order on tv shows
|
||||
public static final String KEY_PREF_TVSHOWS_SORT_ORDER = "tvshows_sort_order";
|
||||
// Ignore articles on tv show sorting
|
||||
public static final String KEY_PREF_TVSHOWS_IGNORE_PREFIXES = "tvshows_ignore_prefixes";
|
||||
|
||||
// Defaults for the preferences
|
||||
public static final String DEFAULT_PREF_THEME = "0";
|
||||
public static final boolean DEFAULT_PREF_SWITCH_TO_REMOTE_AFTER_MEDIA_START = true;
|
||||
public static final boolean DEFAULT_PREF_MOVIES_FILTER_HIDE_WATCHED = false;
|
||||
public static final boolean DEFAULT_PREF_TVSHOWS_FILTER_HIDE_WATCHED = false;
|
||||
public static final boolean DEFAULT_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED = false;
|
||||
|
||||
// Sort orders
|
||||
public static final int SORT_BY_NAME = 0,
|
||||
SORT_BY_DATE_ADDED = 1;
|
||||
public static final int DEFAULT_PREF_MOVIES_SORT_ORDER = SORT_BY_NAME;
|
||||
public static final int DEFAULT_PREF_TVSHOWS_SORT_ORDER = SORT_BY_NAME;
|
||||
|
||||
public static final boolean DEFAULT_PREF_MOVIES_IGNORE_PREFIXES = false;
|
||||
public static final boolean DEFAULT_PREF_TVSHOWS_IGNORE_PREFIXES = false;
|
||||
|
||||
|
||||
// Singleton instance
|
||||
|
@ -75,22 +101,6 @@ public class Settings {
|
|||
* Current saved host id
|
||||
*/
|
||||
public int currentHostId;
|
||||
/**
|
||||
* Maximum pictures to show on cast list (-1 to show all)
|
||||
*/
|
||||
public int maxCastPictures;
|
||||
/**
|
||||
* Filter watched movies on movie list
|
||||
*/
|
||||
public boolean moviesFilterHideWatched;
|
||||
/**
|
||||
* Filter watched tv shows on list (all episodes)
|
||||
*/
|
||||
public boolean tvshowsFilterHideWatched;
|
||||
/**
|
||||
* Filter watched episodes of a tv shows on list
|
||||
*/
|
||||
public boolean tvshowEpisodesFilterHideWatched;
|
||||
|
||||
/**
|
||||
* Show the thanks for coffee message
|
||||
|
@ -112,11 +122,6 @@ public class Settings {
|
|||
SharedPreferences preferences = context.getSharedPreferences(SETTINGS_KEY, Context.MODE_PRIVATE);
|
||||
|
||||
currentHostId = preferences.getInt(CURRENT_HOST_ID, -1);
|
||||
maxCastPictures = preferences.getInt(MAX_CAST_PICTURES, DEFAULT_MAX_CAST_PICTURES);
|
||||
// maxCastPictures = 12;
|
||||
moviesFilterHideWatched = preferences.getBoolean(MOVIES_FILTER_HIDE_WATCHED, false);
|
||||
tvshowsFilterHideWatched = preferences.getBoolean(TVSHOWS_FILTER_HIDE_WATCHED, false);
|
||||
tvshowEpisodesFilterHideWatched = preferences.getBoolean(TVSHOW_EPISODES_FILTER_HIDE_WATCHED, false);
|
||||
showThanksForCofeeMessage = preferences.getBoolean(SHOW_THANKS_FOR_COFFEE_MESSAGE, true);
|
||||
hasBoughtCoffee = preferences.getBoolean(HAS_BOUGHT_COFFEE, false);
|
||||
}
|
||||
|
@ -140,10 +145,6 @@ public class Settings {
|
|||
SharedPreferences.Editor editor = preferences.edit();
|
||||
|
||||
editor.putInt(CURRENT_HOST_ID, currentHostId);
|
||||
editor.putInt(MAX_CAST_PICTURES, maxCastPictures);
|
||||
editor.putBoolean(MOVIES_FILTER_HIDE_WATCHED, moviesFilterHideWatched);
|
||||
editor.putBoolean(TVSHOWS_FILTER_HIDE_WATCHED, tvshowsFilterHideWatched);
|
||||
editor.putBoolean(TVSHOW_EPISODES_FILTER_HIDE_WATCHED, tvshowEpisodesFilterHideWatched);
|
||||
editor.putBoolean(SHOW_THANKS_FOR_COFFEE_MESSAGE, showThanksForCofeeMessage);
|
||||
editor.putBoolean(HAS_BOUGHT_COFFEE, hasBoughtCoffee);
|
||||
editor.apply();
|
||||
|
|
|
@ -18,10 +18,12 @@ package com.syncedsynapse.kore2.ui;
|
|||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.BaseColumns;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.LoaderManager;
|
||||
|
@ -180,24 +182,58 @@ public class MovieListFragment extends Fragment
|
|||
searchView.setQueryHint(getString(R.string.action_search_movies));
|
||||
|
||||
// Setup filters
|
||||
MenuItem hideWatched = menu.findItem(R.id.action_hide_watched);
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
hideWatched.setChecked(settings.moviesFilterHideWatched);
|
||||
MenuItem hideWatched = menu.findItem(R.id.action_hide_watched),
|
||||
ignoreArticles = menu.findItem(R.id.action_ignore_prefixes),
|
||||
sortByName = menu.findItem(R.id.action_sort_by_name),
|
||||
sortByDateAdded = menu.findItem(R.id.action_sort_by_date_added);
|
||||
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
hideWatched.setChecked(preferences.getBoolean(Settings.KEY_PREF_MOVIES_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_MOVIES_FILTER_HIDE_WATCHED));
|
||||
ignoreArticles.setChecked(preferences.getBoolean(Settings.KEY_PREF_MOVIES_IGNORE_PREFIXES, Settings.DEFAULT_PREF_MOVIES_IGNORE_PREFIXES));
|
||||
|
||||
int sortOrder = preferences.getInt(Settings.KEY_PREF_MOVIES_SORT_ORDER, Settings.DEFAULT_PREF_MOVIES_SORT_ORDER);
|
||||
switch (sortOrder) {
|
||||
case Settings.SORT_BY_DATE_ADDED:
|
||||
sortByDateAdded.setChecked(true);
|
||||
break;
|
||||
default:
|
||||
sortByName.setChecked(true);
|
||||
break;
|
||||
}
|
||||
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_hide_watched:
|
||||
if (item.isChecked())
|
||||
item.setChecked(false);
|
||||
else
|
||||
item.setChecked(true);
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
settings.moviesFilterHideWatched = item.isChecked();
|
||||
settings.save();
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
.putBoolean(Settings.KEY_PREF_MOVIES_FILTER_HIDE_WATCHED, item.isChecked())
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_MOVIES, null, this);
|
||||
break;
|
||||
case R.id.action_ignore_prefixes:
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
.putBoolean(Settings.KEY_PREF_MOVIES_IGNORE_PREFIXES, item.isChecked())
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_MOVIES, null, this);
|
||||
break;
|
||||
case R.id.action_sort_by_name:
|
||||
item.setChecked(true);
|
||||
preferences.edit()
|
||||
.putInt(Settings.KEY_PREF_MOVIES_SORT_ORDER, Settings.SORT_BY_NAME)
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_MOVIES, null, this);
|
||||
break;
|
||||
case R.id.action_sort_by_date_added:
|
||||
item.setChecked(true);
|
||||
preferences.edit()
|
||||
.putInt(Settings.KEY_PREF_MOVIES_SORT_ORDER, Settings.SORT_BY_DATE_ADDED)
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_MOVIES, null, this);
|
||||
break;
|
||||
default:
|
||||
|
@ -294,16 +330,29 @@ public class MovieListFragment extends Fragment
|
|||
selectionArgs = new String[] {"%" + searchFilter + "%"};
|
||||
}
|
||||
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
if (settings.moviesFilterHideWatched) {
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
if (preferences.getBoolean(Settings.KEY_PREF_MOVIES_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_MOVIES_FILTER_HIDE_WATCHED)) {
|
||||
if (selection.length() != 0)
|
||||
selection.append(" AND ");
|
||||
selection.append(MediaContract.MoviesColumns.PLAYCOUNT)
|
||||
.append("=0");
|
||||
}
|
||||
|
||||
String sortOrderStr;
|
||||
int sortOrder = preferences.getInt(Settings.KEY_PREF_MOVIES_SORT_ORDER, Settings.DEFAULT_PREF_MOVIES_SORT_ORDER);
|
||||
if (sortOrder == Settings.SORT_BY_DATE_ADDED) {
|
||||
sortOrderStr = MovieListQuery.SORT_BY_DATE_ADDED;
|
||||
} else {
|
||||
// Sort by name
|
||||
if (preferences.getBoolean(Settings.KEY_PREF_MOVIES_IGNORE_PREFIXES, Settings.DEFAULT_PREF_MOVIES_IGNORE_PREFIXES)) {
|
||||
sortOrderStr = MovieListQuery.SORT_BY_NAME_IGNORE_ARTICLES;
|
||||
} else {
|
||||
sortOrderStr = MovieListQuery.SORT_BY_NAME;
|
||||
}
|
||||
}
|
||||
|
||||
return new CursorLoader(getActivity(), uri,
|
||||
MovieListQuery.PROJECTION, selection.toString(), selectionArgs, MovieListQuery.SORT);
|
||||
MovieListQuery.PROJECTION, selection.toString(), selectionArgs, sortOrderStr);
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
|
@ -336,7 +385,9 @@ public class MovieListFragment extends Fragment
|
|||
MediaContract.Movies.TAGLINE,
|
||||
};
|
||||
|
||||
String SORT = MediaDatabase.sortCommonTokens(MediaContract.Movies.TITLE) + " ASC";
|
||||
String SORT_BY_NAME = MediaContract.Movies.TITLE + " ASC";
|
||||
String SORT_BY_DATE_ADDED = MediaContract.Movies.DATEADDED + " DESC";
|
||||
String SORT_BY_NAME_IGNORE_ARTICLES = MediaDatabase.sortCommonTokens(MediaContract.Movies.TITLE) + " ASC";
|
||||
|
||||
final int ID = 0;
|
||||
final int MOVIEID = 1;
|
||||
|
|
|
@ -296,7 +296,7 @@ public class TVShowEpisodeDetailsFragment extends Fragment
|
|||
// case LOADER_CAST:
|
||||
// uri = MediaContract.MovieCast.buildMovieCastListUri(hostInfo.getId(), episodeId);
|
||||
// return new CursorLoader(getActivity(), uri,
|
||||
// MovieCastListQuery.PROJECTION, null, null, MovieCastListQuery.SORT);
|
||||
// MovieCastListQuery.PROJECTION, null, null, MovieCastListQuery.SORT_BY_NAME_IGNORE_ARTICLES);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
@ -645,7 +645,7 @@ public class TVShowEpisodeDetailsFragment extends Fragment
|
|||
// MediaContract.MovieCast.THUMBNAIL,
|
||||
// };
|
||||
//
|
||||
// String SORT = MediaContract.MovieCast.ORDER + " ASC";
|
||||
// String SORT_BY_NAME_IGNORE_ARTICLES = MediaContract.MovieCast.ORDER + " ASC";
|
||||
//
|
||||
// final int ID = 0;
|
||||
// final int NAME = 1;
|
||||
|
|
|
@ -18,11 +18,13 @@ package com.syncedsynapse.kore2.ui;
|
|||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.BaseColumns;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.LoaderManager;
|
||||
|
@ -193,9 +195,9 @@ public class TVShowEpisodeListFragment extends Fragment
|
|||
inflater.inflate(R.menu.tvshow_episode_list, menu);
|
||||
|
||||
// Setup filters
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
menu.findItem(R.id.action_hide_watched)
|
||||
.setChecked(settings.tvshowEpisodesFilterHideWatched);
|
||||
.setChecked(preferences.getBoolean(Settings.KEY_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED));
|
||||
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
@ -204,13 +206,11 @@ public class TVShowEpisodeListFragment extends Fragment
|
|||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_hide_watched:
|
||||
if (item.isChecked())
|
||||
item.setChecked(false);
|
||||
else
|
||||
item.setChecked(true);
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
settings.tvshowEpisodesFilterHideWatched = item.isChecked();
|
||||
settings.save();
|
||||
item.setChecked(!item.isChecked());
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
preferences.edit()
|
||||
.putBoolean(Settings.KEY_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED, item.isChecked())
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_SEASONS, null, this);
|
||||
break;
|
||||
default:
|
||||
|
@ -288,14 +288,16 @@ public class TVShowEpisodeListFragment extends Fragment
|
|||
|
||||
Uri uri;
|
||||
StringBuilder selection = new StringBuilder();
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
boolean tvshowEpisodesFilterHideWatched =
|
||||
preferences.getBoolean(Settings.KEY_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_TVSHOW_EPISODES_FILTER_HIDE_WATCHED);
|
||||
switch (id) {
|
||||
case LOADER_SEASONS:
|
||||
// Load seasons
|
||||
uri = MediaContract.Seasons.buildTVShowSeasonsListUri(hostInfo.getId(), tvshowId);
|
||||
|
||||
// Filters
|
||||
if (settings.tvshowEpisodesFilterHideWatched) {
|
||||
if (tvshowEpisodesFilterHideWatched) {
|
||||
selection.append(MediaContract.SeasonsColumns.WATCHEDEPISODES)
|
||||
.append("!=")
|
||||
.append(MediaContract.SeasonsColumns.EPISODE);
|
||||
|
@ -309,7 +311,7 @@ public class TVShowEpisodeListFragment extends Fragment
|
|||
uri = MediaContract.Episodes.buildTVShowSeasonEpisodesListUri(hostInfo.getId(), tvshowId, season);
|
||||
|
||||
// Filters
|
||||
if (settings.tvshowEpisodesFilterHideWatched) {
|
||||
if (tvshowEpisodesFilterHideWatched) {
|
||||
selection.append(MediaContract.EpisodesColumns.PLAYCOUNT)
|
||||
.append("=0");
|
||||
}
|
||||
|
|
|
@ -18,10 +18,12 @@ package com.syncedsynapse.kore2.ui;
|
|||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Resources;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.provider.BaseColumns;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.LoaderManager;
|
||||
|
@ -177,24 +179,58 @@ public class TVShowListFragment extends Fragment
|
|||
searchView.setQueryHint(getString(R.string.action_search_tvshows));
|
||||
|
||||
// Setup filters
|
||||
MenuItem hideWatched = menu.findItem(R.id.action_hide_watched);
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
hideWatched.setChecked(settings.tvshowsFilterHideWatched);
|
||||
MenuItem hideWatched = menu.findItem(R.id.action_hide_watched),
|
||||
ignoreArticles = menu.findItem(R.id.action_ignore_prefixes),
|
||||
sortByName = menu.findItem(R.id.action_sort_by_name),
|
||||
sortByDateAdded = menu.findItem(R.id.action_sort_by_date_added);
|
||||
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
hideWatched.setChecked(preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_TVSHOWS_FILTER_HIDE_WATCHED));
|
||||
ignoreArticles.setChecked(preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_IGNORE_PREFIXES, Settings.DEFAULT_PREF_TVSHOWS_IGNORE_PREFIXES));
|
||||
|
||||
int sortOrder = preferences.getInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.DEFAULT_PREF_TVSHOWS_SORT_ORDER);
|
||||
switch (sortOrder) {
|
||||
case Settings.SORT_BY_DATE_ADDED:
|
||||
sortByDateAdded.setChecked(true);
|
||||
break;
|
||||
default:
|
||||
sortByName.setChecked(true);
|
||||
break;
|
||||
}
|
||||
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_hide_watched:
|
||||
if (item.isChecked())
|
||||
item.setChecked(false);
|
||||
else
|
||||
item.setChecked(true);
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
settings.tvshowsFilterHideWatched = item.isChecked();
|
||||
settings.save();
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
.putBoolean(Settings.KEY_PREF_TVSHOWS_FILTER_HIDE_WATCHED, item.isChecked())
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_TVSHOWS, null, this);
|
||||
break;
|
||||
case R.id.action_ignore_prefixes:
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
.putBoolean(Settings.KEY_PREF_TVSHOWS_IGNORE_PREFIXES, item.isChecked())
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_TVSHOWS, null, this);
|
||||
break;
|
||||
case R.id.action_sort_by_name:
|
||||
item.setChecked(true);
|
||||
preferences.edit()
|
||||
.putInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.SORT_BY_NAME)
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_TVSHOWS, null, this);
|
||||
break;
|
||||
case R.id.action_sort_by_date_added:
|
||||
item.setChecked(true);
|
||||
preferences.edit()
|
||||
.putInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.SORT_BY_DATE_ADDED)
|
||||
.apply();
|
||||
getLoaderManager().restartLoader(LOADER_TVSHOWS, null, this);
|
||||
break;
|
||||
default:
|
||||
|
@ -288,8 +324,8 @@ public class TVShowListFragment extends Fragment
|
|||
}
|
||||
|
||||
// Filters
|
||||
Settings settings = Settings.getInstance(getActivity());
|
||||
if (settings.tvshowsFilterHideWatched) {
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
if (preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_TVSHOWS_FILTER_HIDE_WATCHED)) {
|
||||
if (selection.length() != 0)
|
||||
selection.append(" AND ");
|
||||
selection.append(MediaContract.TVShowsColumns.WATCHEDEPISODES)
|
||||
|
@ -297,9 +333,23 @@ public class TVShowListFragment extends Fragment
|
|||
.append(MediaContract.TVShowsColumns.EPISODE);
|
||||
}
|
||||
|
||||
String sortOrderStr;
|
||||
int sortOrder = preferences.getInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.DEFAULT_PREF_TVSHOWS_SORT_ORDER);
|
||||
if (sortOrder == Settings.SORT_BY_DATE_ADDED) {
|
||||
sortOrderStr = TVShowListQuery.SORT_BY_DATE_ADDED;
|
||||
} else {
|
||||
// Sort by name
|
||||
if (preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_IGNORE_PREFIXES, Settings.DEFAULT_PREF_TVSHOWS_IGNORE_PREFIXES)) {
|
||||
sortOrderStr = TVShowListQuery.SORT_BY_NAME_IGNORE_ARTICLES;
|
||||
} else {
|
||||
sortOrderStr = TVShowListQuery.SORT_BY_NAME;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return new CursorLoader(getActivity(), uri,
|
||||
TVShowListQuery.PROJECTION, selection.toString(),
|
||||
selectionArgs, TVShowListQuery.SORT);
|
||||
selectionArgs, sortOrderStr);
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
|
@ -330,7 +380,9 @@ public class TVShowListFragment extends Fragment
|
|||
MediaContract.TVShows.WATCHEDEPISODES,
|
||||
};
|
||||
|
||||
String SORT = MediaDatabase.sortCommonTokens(MediaContract.TVShows.TITLE) + " ASC";
|
||||
String SORT_BY_NAME = MediaContract.TVShows.TITLE + " ASC";
|
||||
String SORT_BY_DATE_ADDED = MediaContract.TVShows.DATEADDED + " DESC";
|
||||
String SORT_BY_NAME_IGNORE_ARTICLES = MediaDatabase.sortCommonTokens(MediaContract.TVShows.TITLE) + " ASC";
|
||||
|
||||
final int ID = 0;
|
||||
final int TVSHOWID = 1;
|
||||
|
|
|
@ -17,7 +17,6 @@ package com.syncedsynapse.kore2.utils;
|
|||
|
||||
import android.animation.Animator;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
|
@ -223,7 +222,7 @@ public class UIUtils {
|
|||
int imageHeight = (int)(imageWidth * 1.2);
|
||||
|
||||
List<VideoType.Cast> noPicturesCastList = new ArrayList<VideoType.Cast>();
|
||||
int maxCastPictures = Settings.getInstance(context).maxCastPictures;
|
||||
int maxCastPictures = Settings.DEFAULT_MAX_CAST_PICTURES;
|
||||
int currentPictureNumber = 0;
|
||||
for (int i = 0; i < castList.size(); i++) {
|
||||
VideoType.Cast actor = castList.get(i);
|
||||
|
|
|
@ -24,8 +24,32 @@
|
|||
android:queryHint="@string/action_search"
|
||||
app:showAsAction="ifRoom|collapseActionView"
|
||||
app:actionViewClass="android.support.v7.widget.SearchView"/>
|
||||
<item
|
||||
android:title="@string/sort_order"
|
||||
app:showAsAction="never">
|
||||
<menu>
|
||||
<group
|
||||
android:checkableBehavior="single">
|
||||
<item
|
||||
android:id="@+id/action_sort_by_name"
|
||||
android:title="@string/sort_by_name"
|
||||
app:showAsAction="never"/>
|
||||
<item
|
||||
android:id="@+id/action_sort_by_date_added"
|
||||
android:title="@string/sort_by_date_added"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
<group
|
||||
android:checkableBehavior="all">
|
||||
<item
|
||||
android:id="@+id/action_ignore_prefixes"
|
||||
android:title="@string/ignore_prefixes"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
<group
|
||||
android:id="@+id/group_filter"
|
||||
android:checkableBehavior="all">
|
||||
<item
|
||||
android:id="@+id/action_hide_watched"
|
||||
|
|
|
@ -22,6 +22,30 @@
|
|||
android:queryHint="@string/action_search"
|
||||
app:showAsAction="ifRoom|collapseActionView"
|
||||
app:actionViewClass="android.support.v7.widget.SearchView"/>
|
||||
<item
|
||||
android:title="@string/sort_order"
|
||||
app:showAsAction="never">
|
||||
<menu>
|
||||
<group
|
||||
android:checkableBehavior="single">
|
||||
<item
|
||||
android:id="@+id/action_sort_by_name"
|
||||
android:title="@string/sort_by_name"
|
||||
app:showAsAction="never"/>
|
||||
<item
|
||||
android:id="@+id/action_sort_by_date_added"
|
||||
android:title="@string/sort_by_date_added"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
<group
|
||||
android:checkableBehavior="all">
|
||||
<item
|
||||
android:id="@+id/action_ignore_prefixes"
|
||||
android:title="@string/ignore_prefixes"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
</menu>
|
||||
</item>
|
||||
<group android:id="@+id/group_filter"
|
||||
android:checkableBehavior="all">
|
||||
<item android:id="@+id/action_hide_watched"
|
||||
|
|
|
@ -256,6 +256,10 @@
|
|||
|
||||
<!-- Filters on list menus -->
|
||||
<string name="hide_watched">Hide watched</string>
|
||||
<string name="sort_order">Sort</string>
|
||||
<string name="sort_by_name">By name</string>
|
||||
<string name="sort_by_date_added">By date added</string>
|
||||
<string name="ignore_prefixes">Ignore prefixes</string>
|
||||
|
||||
<!-- Preferences strings -->
|
||||
<string name="theme">Theme</string>
|
||||
|
|
Loading…
Reference in New Issue