diff --git a/app/src/main/java/org/xbmc/kore/Settings.java b/app/src/main/java/org/xbmc/kore/Settings.java
index 0da3a8c..5285b48 100644
--- a/app/src/main/java/org/xbmc/kore/Settings.java
+++ b/app/src/main/java/org/xbmc/kore/Settings.java
@@ -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;
diff --git a/app/src/main/java/org/xbmc/kore/ui/sections/video/MovieListFragment.java b/app/src/main/java/org/xbmc/kore/ui/sections/video/MovieListFragment.java
index 63f8f63..3cba7a6 100644
--- a/app/src/main/java/org/xbmc/kore/ui/sections/video/MovieListFragment.java
+++ b/app/src/main/java/org/xbmc/kore/ui/sections/video/MovieListFragment.java
@@ -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 {
diff --git a/app/src/main/java/org/xbmc/kore/ui/sections/video/TVShowListFragment.java b/app/src/main/java/org/xbmc/kore/ui/sections/video/TVShowListFragment.java
index eff2a3d..e30aeb5 100644
--- a/app/src/main/java/org/xbmc/kore/ui/sections/video/TVShowListFragment.java
+++ b/app/src/main/java/org/xbmc/kore/ui/sections/video/TVShowListFragment.java
@@ -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 {
diff --git a/app/src/main/res/menu/movie_list.xml b/app/src/main/res/menu/movie_list.xml
index 4ec0d00..261aedf 100644
--- a/app/src/main/res/menu/movie_list.xml
+++ b/app/src/main/res/menu/movie_list.xml
@@ -65,4 +65,12 @@
android:title="@string/hide_watched"
app:showAsAction="never"/>
+
+
+
+
diff --git a/app/src/main/res/menu/tvshow_list.xml b/app/src/main/res/menu/tvshow_list.xml
index 98a5e6d..6ecdd04 100644
--- a/app/src/main/res/menu/tvshow_list.xml
+++ b/app/src/main/res/menu/tvshow_list.xml
@@ -58,4 +58,12 @@
android:title="@string/hide_watched"
app:showAsAction="never"/>
+
+
+
+
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 67d4db7..1184836 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -200,7 +200,9 @@ Pressione Concluir para usar o controlo remoto.]]>
Ativar/desativar Extensão
Extensão activada
Extensão desactivada
- Ocultar vistos
+ Ocultar visualizados
+ Assinalar visualizados
+
Tema
Noite
Dia
@@ -307,6 +309,7 @@ Se necessitar de ajuda, visite o nosso Por data de reprodução
Próximos episódios
Épocas
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 23ced5c..ee0b869 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -330,6 +330,7 @@
By date added
By last played
Ignore prefixes
+ Show watched status
Application