Added option to sort by last played (#340)
This commit is contained in:
parent
c9147231ab
commit
d5f8ee4d49
|
@ -48,7 +48,8 @@ public class Settings {
|
|||
SORT_BY_LENGTH = 4,
|
||||
SORT_BY_ALBUM = 5,
|
||||
SORT_BY_ARTIST = 6,
|
||||
SORT_BY_ARTIST_YEAR = 7 ;
|
||||
SORT_BY_ARTIST_YEAR = 7,
|
||||
SORT_BY_LAST_PLAYED = 8;
|
||||
|
||||
/**
|
||||
* Preferences keys.
|
||||
|
|
|
@ -145,6 +145,7 @@ public class MediaContract {
|
|||
String WRITERS = "writers";
|
||||
String YEAR = "year";
|
||||
String DATEADDED = "dateadded";
|
||||
String LASTPLAYED = "lastplayed";
|
||||
}
|
||||
|
||||
public static class Movies implements BaseColumns, SyncColumns, MoviesColumns {
|
||||
|
@ -229,6 +230,7 @@ public class MediaContract {
|
|||
String PLAYCOUNT = "playcount";
|
||||
String TITLE = "title";
|
||||
String DATEADDED = "dateadded";
|
||||
String LASTPLAYED = "lastplayed";
|
||||
String FILE = "file";
|
||||
String PLOT = "plot";
|
||||
String EPISODE = "episode";
|
||||
|
|
|
@ -37,7 +37,8 @@ public class MediaDatabase extends SQLiteOpenHelper {
|
|||
DB_VERSION_PRE_SONG_DISC = 7,
|
||||
DB_VERSION_PRE_HOST_VERSION = 8,
|
||||
DB_VERSION_PRE_HOST_HTTPS = 9,
|
||||
DB_VERSION = 10;
|
||||
DB_VERSION_PRE_LAST_PLAYED = 10,
|
||||
DB_VERSION = 11;
|
||||
|
||||
/**
|
||||
* Tables exposed
|
||||
|
@ -198,6 +199,7 @@ public class MediaDatabase extends SQLiteOpenHelper {
|
|||
MediaContract.MoviesColumns.WRITERS + " TEXT, " +
|
||||
MediaContract.MoviesColumns.YEAR + " INTEGER, " +
|
||||
MediaContract.MoviesColumns.DATEADDED + " TEXT, " +
|
||||
MediaContract.MoviesColumns.LASTPLAYED + " TEXT, " +
|
||||
"UNIQUE (" + MediaContract.MoviesColumns.HOST_ID + ", " + MediaContract.MoviesColumns.MOVIEID + ") ON CONFLICT REPLACE)"
|
||||
);
|
||||
|
||||
|
@ -229,6 +231,7 @@ public class MediaDatabase extends SQLiteOpenHelper {
|
|||
MediaContract.TVShowsColumns.PLAYCOUNT + " INTEGER, " +
|
||||
MediaContract.TVShowsColumns.TITLE + " TEXT, " +
|
||||
MediaContract.TVShowsColumns.DATEADDED + " TEXT, " +
|
||||
MediaContract.TVShowsColumns.LASTPLAYED + " TEXT, " +
|
||||
MediaContract.TVShowsColumns.FILE + " TEXT, " +
|
||||
MediaContract.TVShowsColumns.PLOT + " TEXT, " +
|
||||
MediaContract.TVShowsColumns.EPISODE + " INTEGER, " +
|
||||
|
@ -520,6 +523,13 @@ public class MediaDatabase extends SQLiteOpenHelper {
|
|||
db.execSQL("ALTER TABLE " + Tables.HOSTS +
|
||||
" ADD COLUMN " + MediaContract.HostsColumns.IS_HTTPS +
|
||||
" INTEGER DEFAULT 0;");
|
||||
case DB_VERSION_PRE_LAST_PLAYED:
|
||||
db.execSQL("ALTER TABLE " + Tables.MOVIES +
|
||||
" ADD COLUMN " + MediaContract.MoviesColumns.LASTPLAYED +
|
||||
" TEXT;");
|
||||
db.execSQL("ALTER TABLE " + Tables.TVSHOWS +
|
||||
" ADD COLUMN " + MediaContract.TVShowsColumns.LASTPLAYED +
|
||||
" TEXT;");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@ public class SyncUtils {
|
|||
movieValues.put(MediaContract.MoviesColumns.THUMBNAIL, movie.thumbnail);
|
||||
movieValues.put(MediaContract.MoviesColumns.PLAYCOUNT, movie.playcount);
|
||||
movieValues.put(MediaContract.MoviesColumns.DATEADDED, movie.dateadded);
|
||||
movieValues.put(MediaContract.MoviesColumns.LASTPLAYED, movie.lastplayed);
|
||||
movieValues.put(MediaContract.MoviesColumns.TITLE, movie.title);
|
||||
movieValues.put(MediaContract.MoviesColumns.FILE, movie.file);
|
||||
movieValues.put(MediaContract.MoviesColumns.PLOT, movie.plot);
|
||||
|
@ -156,6 +157,7 @@ public class SyncUtils {
|
|||
tvshowValues.put(MediaContract.TVShowsColumns.PLAYCOUNT, tvshow.playcount);
|
||||
tvshowValues.put(MediaContract.TVShowsColumns.TITLE, tvshow.title);
|
||||
tvshowValues.put(MediaContract.TVShowsColumns.DATEADDED, tvshow.dateadded);
|
||||
tvshowValues.put(MediaContract.TVShowsColumns.LASTPLAYED, tvshow.lastplayed);
|
||||
tvshowValues.put(MediaContract.TVShowsColumns.FILE, tvshow.file);
|
||||
tvshowValues.put(MediaContract.TVShowsColumns.PLOT, tvshow.plot);
|
||||
tvshowValues.put(MediaContract.TVShowsColumns.EPISODE, tvshow.episode);
|
||||
|
|
|
@ -102,6 +102,8 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
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 if (sortOrder == Settings.SORT_BY_LAST_PLAYED) {
|
||||
sortOrderStr = MovieListQuery.SORT_BY_LAST_PLAYED;
|
||||
} else if (sortOrder == Settings.SORT_BY_RATING) {
|
||||
sortOrderStr = MovieListQuery.SORT_BY_RATING;
|
||||
} else if (sortOrder == Settings.SORT_BY_YEAR) {
|
||||
|
@ -155,6 +157,7 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
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),
|
||||
sortByLastPlayed = menu.findItem(R.id.action_sort_by_last_played),
|
||||
sortByLength = menu.findItem(R.id.action_sort_by_length);
|
||||
|
||||
|
||||
|
@ -173,6 +176,9 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
case Settings.SORT_BY_DATE_ADDED:
|
||||
sortByDateAdded.setChecked(true);
|
||||
break;
|
||||
case Settings.SORT_BY_LAST_PLAYED:
|
||||
sortByLastPlayed.setChecked(true);
|
||||
break;
|
||||
case Settings.SORT_BY_LENGTH:
|
||||
sortByLength.setChecked(true);
|
||||
break;
|
||||
|
@ -230,6 +236,13 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
.apply();
|
||||
refreshList();
|
||||
break;
|
||||
case R.id.action_sort_by_last_played:
|
||||
item.setChecked(true);
|
||||
preferences.edit()
|
||||
.putInt(Settings.KEY_PREF_MOVIES_SORT_ORDER, Settings.SORT_BY_LAST_PLAYED)
|
||||
.apply();
|
||||
refreshList();
|
||||
break;
|
||||
case R.id.action_sort_by_length:
|
||||
item.setChecked(true);
|
||||
preferences.edit()
|
||||
|
@ -265,6 +278,7 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
String SORT_BY_YEAR = MediaContract.Movies.YEAR + " ASC";
|
||||
String SORT_BY_RATING = MediaContract.Movies.RATING + " DESC";
|
||||
String SORT_BY_DATE_ADDED = MediaContract.Movies.DATEADDED + " DESC";
|
||||
String SORT_BY_LAST_PLAYED = MediaContract.Movies.LASTPLAYED + " DESC";
|
||||
String SORT_BY_LENGTH = MediaContract.Movies.RUNTIME + " DESC";
|
||||
String SORT_BY_NAME_IGNORE_ARTICLES = MediaDatabase.sortCommonTokens(MediaContract.Movies.TITLE) + " ASC";
|
||||
|
||||
|
|
|
@ -108,6 +108,8 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
sortOrderStr = TVShowListQuery.SORT_BY_YEAR;
|
||||
} else if (sortOrder == Settings.SORT_BY_RATING) {
|
||||
sortOrderStr = TVShowListQuery.SORT_BY_RATING;
|
||||
} else if (sortOrder == Settings.SORT_BY_LAST_PLAYED) {
|
||||
sortOrderStr = TVShowListQuery.SORT_BY_LAST_PLAYED;
|
||||
} else {
|
||||
// Sort by name
|
||||
if (preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_IGNORE_PREFIXES, Settings.DEFAULT_PREF_TVSHOWS_IGNORE_PREFIXES)) {
|
||||
|
@ -156,7 +158,8 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
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);
|
||||
sortByDateAdded = menu.findItem(R.id.action_sort_by_date_added),
|
||||
sortByLastPlayed = menu.findItem(R.id.action_sort_by_last_played);
|
||||
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
hideWatched.setChecked(preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_TVSHOWS_FILTER_HIDE_WATCHED));
|
||||
|
@ -173,6 +176,9 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
case Settings.SORT_BY_DATE_ADDED:
|
||||
sortByDateAdded.setChecked(true);
|
||||
break;
|
||||
case Settings.SORT_BY_LAST_PLAYED:
|
||||
sortByLastPlayed.setChecked(true);
|
||||
break;
|
||||
default:
|
||||
sortByName.setChecked(true);
|
||||
break;
|
||||
|
@ -227,6 +233,13 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
.apply();
|
||||
refreshList();
|
||||
break;
|
||||
case R.id.action_sort_by_last_played:
|
||||
item.setChecked(true);
|
||||
preferences.edit()
|
||||
.putInt(Settings.KEY_PREF_TVSHOWS_SORT_ORDER, Settings.SORT_BY_LAST_PLAYED)
|
||||
.apply();
|
||||
refreshList();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -259,6 +272,7 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
String SORT_BY_YEAR = MediaContract.TVShows.PREMIERED + " ASC";
|
||||
String SORT_BY_RATING = MediaContract.TVShows.RATING + " DESC";
|
||||
String SORT_BY_DATE_ADDED = MediaContract.TVShows.DATEADDED + " DESC";
|
||||
String SORT_BY_LAST_PLAYED = MediaContract.TVShows.LASTPLAYED + " DESC";
|
||||
String SORT_BY_NAME_IGNORE_ARTICLES = MediaDatabase.sortCommonTokens(MediaContract.TVShows.TITLE) + " ASC";
|
||||
|
||||
final int ID = 0;
|
||||
|
|
|
@ -39,6 +39,10 @@
|
|||
android:id="@+id/action_sort_by_date_added"
|
||||
android:title="@string/sort_by_date_added"
|
||||
app:showAsAction="never"/>
|
||||
<item
|
||||
android:id="@+id/action_sort_by_last_played"
|
||||
android:title="@string/sort_by_last_played"
|
||||
app:showAsAction="never"/>
|
||||
<item
|
||||
android:id="@+id/action_sort_by_length"
|
||||
android:title="@string/sort_by_length"
|
||||
|
|
|
@ -38,6 +38,10 @@
|
|||
android:id="@+id/action_sort_by_date_added"
|
||||
android:title="@string/sort_by_date_added"
|
||||
app:showAsAction="never"/>
|
||||
<item
|
||||
android:id="@+id/action_sort_by_last_played"
|
||||
android:title="@string/sort_by_last_played"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
<group
|
||||
android:checkableBehavior="all">
|
||||
|
|
|
@ -318,6 +318,7 @@
|
|||
<string name="sort_by_rating">By rating</string>
|
||||
<string name="sort_by_length">By length</string>
|
||||
<string name="sort_by_date_added">By date added</string>
|
||||
<string name="sort_by_last_played">By last played</string>
|
||||
<string name="ignore_prefixes">Ignore prefixes</string>
|
||||
|
||||
<!-- Preferences strings -->
|
||||
|
|
Loading…
Reference in New Issue