diff --git a/locale/en_US/translations.ts b/locale/en_US/translations.ts
index 8d86143d..0b7e0ae1 100644
--- a/locale/en_US/translations.ts
+++ b/locale/en_US/translations.ts
@@ -657,6 +657,16 @@
Blur Unwatched EpisodesOption Title in user setting screen
+
+
+ Go straight to episode listing (if series has only one season)
+ Settings Menu - Title for option
+
+
+
+ If enabled, selecting a TV series with only one season will go directly to the episode listing for that episode, rather than the season listing.
+ Settings Menu - Description for option
+ If enabled, images of unwatched episodes will be blurred.
diff --git a/settings/settings.json b/settings/settings.json
index 1b70da60..a04f6a26 100644
--- a/settings/settings.json
+++ b/settings/settings.json
@@ -87,6 +87,13 @@
"settingName": "ui.tvshows.blurunwatched",
"type": "bool",
"default": "false"
+ },
+ {
+ "title": "Go straight to episode listing (if series has only one season)",
+ "description": "If enabled, selecting a TV series with only one season will go directly to the episode listing for that episode, rather than the season listing.",
+ "settingName": "ui.tvshows.goStraightToEpisodeListing",
+ "type": "bool",
+ "default": "true"
}
]
},
diff --git a/source/ShowScenes.brs b/source/ShowScenes.brs
index 90042322..97f423ff 100644
--- a/source/ShowScenes.brs
+++ b/source/ShowScenes.brs
@@ -358,12 +358,19 @@ function CreateMovieDetailsGroup(movie)
end function
function CreateSeriesDetailsGroup(series)
+ ' Get season data early in the function so we can check number of seasons.
+ seasonData = TVSeasons(series.id)
+ ' Divert to season details if user setting goStraightToEpisodeListing is enabled and only one season exists.
+ if get_user_setting("ui.tvshows.goStraightToEpisodeListing") = "true" and seasonData.Items.Count() = 1
+ print "Returning single season"
+ return CreateSeasonDetailsGroupByID(series.id, seasonData.Items[0].id)
+ end if
group = CreateObject("roSGNode", "TVShowDetails")
group.optionsAvailable = false
m.global.sceneManager.callFunc("pushScene", group)
group.itemContent = ItemMetaData(series.id)
- group.seasonData = TVSeasons(series.id)
+ group.seasonData = seasonData ' Re-use variable from beginning of function
group.observeField("seasonSelected", m.port)