From 57faf5ee1f00cfa756cb7546fe3ac43582912c27 Mon Sep 17 00:00:00 2001 From: Raafat Akkad Date: Sun, 11 Oct 2015 14:56:07 +0100 Subject: [PATCH] Add ability to sort by year & rating in the TV Shows fragment --- .../org/xbmc/kore/ui/TVShowListFragment.java | 28 +++++++++++++++++++ app/src/main/res/menu/tvshow_list.xml | 8 ++++++ 2 files changed, 36 insertions(+) diff --git a/app/src/main/java/org/xbmc/kore/ui/TVShowListFragment.java b/app/src/main/java/org/xbmc/kore/ui/TVShowListFragment.java index c4f7376..e98b6a2 100644 --- a/app/src/main/java/org/xbmc/kore/ui/TVShowListFragment.java +++ b/app/src/main/java/org/xbmc/kore/ui/TVShowListFragment.java @@ -111,6 +111,10 @@ public class TVShowListFragment extends AbstractListFragment { 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 if (sortOrder == Settings.SORT_BY_YEAR) { + sortOrderStr = TVShowListQuery.SORT_BY_YEAR; + } else if (sortOrder == Settings.SORT_BY_RATING) { + sortOrderStr = TVShowListQuery.SORT_BY_RATING; } else { // Sort by name if (preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_IGNORE_PREFIXES, Settings.DEFAULT_PREF_TVSHOWS_IGNORE_PREFIXES)) { @@ -160,6 +164,8 @@ public class TVShowListFragment extends AbstractListFragment { 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), + sortByYear = menu.findItem(R.id.action_sort_by_year), + sortByRating = menu.findItem(R.id.action_sort_by_rating), sortByDateAdded = menu.findItem(R.id.action_sort_by_date_added); SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); @@ -168,6 +174,12 @@ public class TVShowListFragment extends AbstractListFragment { int sortOrder = preferences.getInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.DEFAULT_PREF_TVSHOWS_SORT_ORDER); switch (sortOrder) { + case Settings.SORT_BY_YEAR: + sortByYear.setChecked(true); + break; + case Settings.SORT_BY_RATING: + sortByRating.setChecked(true); + break; case Settings.SORT_BY_DATE_ADDED: sortByDateAdded.setChecked(true); break; @@ -204,6 +216,20 @@ public class TVShowListFragment extends AbstractListFragment { .apply(); refreshList(); break; + case R.id.action_sort_by_year: + item.setChecked(true); + preferences.edit() + .putInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.SORT_BY_YEAR) + .apply(); + refreshList(); + break; + case R.id.action_sort_by_rating: + item.setChecked(true); + preferences.edit() + .putInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.SORT_BY_RATING) + .apply(); + refreshList(); + break; case R.id.action_sort_by_date_added: item.setChecked(true); preferences.edit() @@ -240,6 +266,8 @@ public class TVShowListFragment extends AbstractListFragment { }; String SORT_BY_NAME = MediaContract.TVShows.TITLE + " ASC"; + String SORT_BY_YEAR = MediaContract.TVShows.PREMIERED + " DESC"; + String SORT_BY_RATING = MediaContract.TVShows.RATING + " DESC"; String SORT_BY_DATE_ADDED = MediaContract.TVShows.DATEADDED + " DESC"; String SORT_BY_NAME_IGNORE_ARTICLES = MediaDatabase.sortCommonTokens(MediaContract.TVShows.TITLE) + " ASC"; diff --git a/app/src/main/res/menu/tvshow_list.xml b/app/src/main/res/menu/tvshow_list.xml index b87f249..a945fe8 100644 --- a/app/src/main/res/menu/tvshow_list.xml +++ b/app/src/main/res/menu/tvshow_list.xml @@ -32,6 +32,14 @@ android:id="@+id/action_sort_by_name" android:title="@string/sort_by_name" app:showAsAction="never"/> + +