Added option to show/hide watched indicator in movies and TV shows list
This commit is contained in:
parent
750478b164
commit
77a9a8ca0e
|
@ -92,6 +92,10 @@ public class Settings {
|
|||
public static final String KEY_PREF_MOVIES_SORT_ORDER = "movies_sort_order";
|
||||
public static final int DEFAULT_PREF_MOVIES_SORT_ORDER = SORT_BY_NAME;
|
||||
|
||||
// Show watched status on movie list
|
||||
public static final String KEY_PREF_MOVIES_SHOW_WATCHED_STATUS = "movies_show_watched_status";
|
||||
public static final boolean DEFAULT_PREF_MOVIES_SHOW_WATCHED_STATUS = true;
|
||||
|
||||
// Sort order on albums
|
||||
public static final String KEY_PREF_ALBUMS_SORT_ORDER = "albums_sort_order";
|
||||
public static final int DEFAULT_PREF_ALBUMS_SORT_ORDER = SORT_BY_ALBUM;
|
||||
|
@ -116,6 +120,10 @@ public class Settings {
|
|||
public static final String KEY_PREF_TVSHOWS_IGNORE_PREFIXES = "tvshows_ignore_prefixes";
|
||||
public static final boolean DEFAULT_PREF_TVSHOWS_IGNORE_PREFIXES = false;
|
||||
|
||||
// Show watched status on movie list
|
||||
public static final String KEY_PREF_TVSHOWS_SHOW_WATCHED_STATUS = "tvshows_show_watched_status";
|
||||
public static final boolean DEFAULT_PREF_TVSHOWS_SHOW_WATCHED_STATUS = true;
|
||||
|
||||
// Use hardware volume keys to control volume
|
||||
public static final String KEY_PREF_USE_HARDWARE_VOLUME_KEYS = "pref_use_hardware_volume_keys";
|
||||
public static final boolean DEFAULT_PREF_USE_HARDWARE_VOLUME_KEYS = true;
|
||||
|
|
|
@ -57,12 +57,14 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
private static final String TAG = LogUtils.makeLogTag(MovieListFragment.class);
|
||||
|
||||
public interface OnMovieSelectedListener {
|
||||
public void onMovieSelected(ViewHolder vh);
|
||||
void onMovieSelected(ViewHolder vh);
|
||||
}
|
||||
|
||||
// Activity listener
|
||||
private OnMovieSelectedListener listenerActivity;
|
||||
|
||||
private boolean showWatchedStatus;
|
||||
|
||||
@Override
|
||||
protected String getListSyncType() { return LibrarySyncService.SYNC_ALL_MOVIES; }
|
||||
|
||||
|
@ -100,6 +102,8 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
.append("=0");
|
||||
}
|
||||
|
||||
showWatchedStatus = preferences.getBoolean(Settings.KEY_PREF_MOVIES_SHOW_WATCHED_STATUS, Settings.DEFAULT_PREF_MOVIES_SHOW_WATCHED_STATUS);
|
||||
|
||||
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) {
|
||||
|
@ -160,11 +164,12 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
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);
|
||||
|
||||
sortByLength = menu.findItem(R.id.action_sort_by_length),
|
||||
showWatchedStatusMenuItem = menu.findItem(R.id.action_show_watched_status);
|
||||
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
hideWatched.setChecked(preferences.getBoolean(Settings.KEY_PREF_MOVIES_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_MOVIES_FILTER_HIDE_WATCHED));
|
||||
showWatchedStatusMenuItem.setChecked(preferences.getBoolean(Settings.KEY_PREF_MOVIES_SHOW_WATCHED_STATUS, Settings.DEFAULT_PREF_MOVIES_SHOW_WATCHED_STATUS));
|
||||
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);
|
||||
|
@ -203,6 +208,14 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
.apply();
|
||||
refreshList();
|
||||
break;
|
||||
case R.id.action_show_watched_status:
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
.putBoolean(Settings.KEY_PREF_MOVIES_SHOW_WATCHED_STATUS, item.isChecked())
|
||||
.apply();
|
||||
showWatchedStatus = item.isChecked();
|
||||
refreshList();
|
||||
break;
|
||||
case R.id.action_ignore_prefixes:
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
|
@ -285,16 +298,16 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
String SORT_BY_LENGTH = MediaContract.Movies.RUNTIME + " DESC";
|
||||
String SORT_BY_NAME_IGNORE_ARTICLES = MediaDatabase.sortCommonTokens(MediaContract.Movies.TITLE) + " COLLATE NOCASE ASC";
|
||||
|
||||
final int ID = 0;
|
||||
final int MOVIEID = 1;
|
||||
final int TITLE = 2;
|
||||
final int THUMBNAIL = 3;
|
||||
final int YEAR = 4;
|
||||
final int GENRES = 5;
|
||||
final int RUNTIME = 6;
|
||||
final int RATING = 7;
|
||||
final int TAGLINE = 8;
|
||||
final int PLAYCOUNT = 9;
|
||||
int ID = 0;
|
||||
int MOVIEID = 1;
|
||||
int TITLE = 2;
|
||||
int THUMBNAIL = 3;
|
||||
int YEAR = 4;
|
||||
int GENRES = 5;
|
||||
int RUNTIME = 6;
|
||||
int RATING = 7;
|
||||
int TAGLINE = 8;
|
||||
int PLAYCOUNT = 9;
|
||||
}
|
||||
|
||||
private class MoviesAdapter extends CursorAdapter {
|
||||
|
@ -381,7 +394,7 @@ public class MovieListFragment extends AbstractCursorListFragment {
|
|||
viewHolder.dataHolder.getTitle(),
|
||||
viewHolder.artView, artWidth, artHeight);
|
||||
|
||||
if (cursor.getInt(MovieListQuery.PLAYCOUNT) > 0) {
|
||||
if (showWatchedStatus && (cursor.getInt(MovieListQuery.PLAYCOUNT) > 0)) {
|
||||
viewHolder.checkmarkView.setVisibility(View.VISIBLE);
|
||||
viewHolder.checkmarkView.setColorFilter(themeAccentColor);
|
||||
} else {
|
||||
|
|
|
@ -57,12 +57,14 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
private static final String TAG = LogUtils.makeLogTag(TVShowListFragment.class);
|
||||
|
||||
public interface OnTVShowSelectedListener {
|
||||
public void onTVShowSelected(TVShowListFragment.ViewHolder vh);
|
||||
void onTVShowSelected(TVShowListFragment.ViewHolder vh);
|
||||
}
|
||||
|
||||
// Activity listener
|
||||
private OnTVShowSelectedListener listenerActivity;
|
||||
|
||||
private boolean showWatchedStatus;
|
||||
|
||||
@Override
|
||||
protected String getListSyncType() { return LibrarySyncService.SYNC_ALL_TVSHOWS; }
|
||||
|
||||
|
@ -102,6 +104,8 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
.append(MediaContract.TVShowsColumns.EPISODE);
|
||||
}
|
||||
|
||||
showWatchedStatus = preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_SHOW_WATCHED_STATUS, Settings.DEFAULT_PREF_TVSHOWS_SHOW_WATCHED_STATUS);
|
||||
|
||||
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) {
|
||||
|
@ -161,10 +165,12 @@ public class TVShowListFragment 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);
|
||||
sortByLastPlayed = menu.findItem(R.id.action_sort_by_last_played),
|
||||
showWatchedStatusMenuItem = menu.findItem(R.id.action_show_watched_status);
|
||||
|
||||
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
hideWatched.setChecked(preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_FILTER_HIDE_WATCHED, Settings.DEFAULT_PREF_TVSHOWS_FILTER_HIDE_WATCHED));
|
||||
showWatchedStatusMenuItem.setChecked(preferences.getBoolean(Settings.KEY_PREF_TVSHOWS_SHOW_WATCHED_STATUS, Settings.DEFAULT_PREF_TVSHOWS_SHOW_WATCHED_STATUS));
|
||||
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);
|
||||
|
@ -200,6 +206,14 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
.apply();
|
||||
refreshList();
|
||||
break;
|
||||
case R.id.action_show_watched_status:
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
.putBoolean(Settings.KEY_PREF_TVSHOWS_SHOW_WATCHED_STATUS, item.isChecked())
|
||||
.apply();
|
||||
showWatchedStatus = item.isChecked();
|
||||
refreshList();
|
||||
break;
|
||||
case R.id.action_ignore_prefixes:
|
||||
item.setChecked(!item.isChecked());
|
||||
preferences.edit()
|
||||
|
@ -277,20 +291,20 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
String SORT_BY_LAST_PLAYED = MediaContract.TVShows.LASTPLAYED + " DESC";
|
||||
String SORT_BY_NAME_IGNORE_ARTICLES = MediaDatabase.sortCommonTokens(MediaContract.TVShows.TITLE) + " COLLATE NOCASE ASC";
|
||||
|
||||
final int ID = 0;
|
||||
final int TVSHOWID = 1;
|
||||
final int TITLE = 2;
|
||||
final int THUMBNAIL = 3;
|
||||
final int FANART = 4;
|
||||
final int PREMIERED = 5;
|
||||
final int STUDIO = 6;
|
||||
final int EPISODE = 7;
|
||||
final int WATCHEDEPISODES = 8;
|
||||
final int RATING = 9;
|
||||
final int PLOT = 10;
|
||||
final int PLAYCOUNT = 11;
|
||||
final int IMDBNUMBER = 12;
|
||||
final int GENRES = 13;
|
||||
int ID = 0;
|
||||
int TVSHOWID = 1;
|
||||
int TITLE = 2;
|
||||
int THUMBNAIL = 3;
|
||||
int FANART = 4;
|
||||
int PREMIERED = 5;
|
||||
int STUDIO = 6;
|
||||
int EPISODE = 7;
|
||||
int WATCHEDEPISODES = 8;
|
||||
int RATING = 9;
|
||||
int PLOT = 10;
|
||||
int PLAYCOUNT = 11;
|
||||
int IMDBNUMBER = 12;
|
||||
int GENRES = 13;
|
||||
}
|
||||
|
||||
private class TVShowsAdapter extends CursorAdapter {
|
||||
|
@ -371,7 +385,7 @@ public class TVShowListFragment extends AbstractCursorListFragment {
|
|||
viewHolder.dataHolder.getTitle(),
|
||||
viewHolder.artView, artWidth, artHeight);
|
||||
|
||||
if (episode - watchedEpisodes == 0) {
|
||||
if (showWatchedStatus && (episode - watchedEpisodes == 0)) {
|
||||
viewHolder.checkmarkView.setVisibility(View.VISIBLE);
|
||||
viewHolder.checkmarkView.setColorFilter(themeAccentColor);
|
||||
} else {
|
||||
|
|
|
@ -65,4 +65,12 @@
|
|||
android:title="@string/hide_watched"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
|
||||
<group
|
||||
android:checkableBehavior="all">
|
||||
<item
|
||||
android:id="@+id/action_show_watched_status"
|
||||
android:title="@string/show_watched_status"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
</menu>
|
||||
|
|
|
@ -58,4 +58,12 @@
|
|||
android:title="@string/hide_watched"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
|
||||
<group
|
||||
android:checkableBehavior="all">
|
||||
<item
|
||||
android:id="@+id/action_show_watched_status"
|
||||
android:title="@string/show_watched_status"
|
||||
app:showAsAction="never"/>
|
||||
</group>
|
||||
</menu>
|
||||
|
|
|
@ -200,7 +200,9 @@ Pressione <b><i>Concluir</i></b> para usar o controlo remoto.]]></string>
|
|||
<string name="enable_disable">Ativar/desativar Extensão</string>
|
||||
<string name="addon_enabled">Extensão activada</string>
|
||||
<string name="addon_disabled">Extensão desactivada</string>
|
||||
<string name="hide_watched">Ocultar vistos</string>
|
||||
<string name="hide_watched">Ocultar visualizados</string>
|
||||
<string name="show_watched_status">Assinalar visualizados</string>
|
||||
|
||||
<string name="theme">Tema</string>
|
||||
<string name="theme_night">Noite</string>
|
||||
<string name="theme_day">Dia</string>
|
||||
|
@ -307,6 +309,7 @@ Se necessitar de ajuda, visite o nosso <b><a href="http://forum.kodi.tv/forumdis
|
|||
<string name="sort_by_last_played">Por data de reprodução</string>
|
||||
<string name="tvshow_next_episode">Próximos episódios</string>
|
||||
<string name="tvshow_seasons">Épocas</string>
|
||||
<string name="Refreshing_not_implemented_for_this_item"></string>
|
||||
|
||||
<!--<string name="buy_me_coffee">Oferecer um café</string>-->
|
||||
<!--<string name="expresso_please">Expresso, por favor. Obrigado!</string>-->
|
||||
|
|
|
@ -330,6 +330,7 @@
|
|||
<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>
|
||||
<string name="show_watched_status">Show watched status</string>
|
||||
|
||||
<!-- Preferences strings -->
|
||||
<string name="application">Application</string>
|
||||
|
|
Loading…
Reference in New Issue