diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt index dc6cc454..80e22d8b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt @@ -1118,6 +1118,11 @@ data class NextAiring( val unixTime: Long, ) +/** + * @param season To be mapped with episode season, not shown in UI if displaySeason is defined + * @param name To be shown next to the season like "Season $displaySeason $name" but if displaySeason is null then "$name" + * @param displaySeason What to be displayed next to the season name, if null then the name is the only thing shown. + * */ data class SeasonData( val season: Int, val name: String? = null, diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt index 02fe60ca..b94143f1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt @@ -1483,15 +1483,20 @@ class ResultViewModel2 : ViewModel() { 0 -> txt(R.string.no_season) else -> { val seasonNames = (currentResponse as? EpisodeResponse)?.seasonNames - val seasonData = - seasonNames.getSeason(indexer.season) - val suffix = seasonData?.name?.let { " $it" } ?: "" - txt( - R.string.season_format, - txt(R.string.season), - seasonData?.displaySeason ?: indexer.season, - suffix - ) + val seasonData = seasonNames.getSeason(indexer.season) + + // If displaySeason is null then only show the name! + if (seasonData?.name != null && seasonData.displaySeason == null) { + txt(seasonData.name) + } else { + val suffix = seasonData?.name?.let { " $it" } ?: "" + txt( + R.string.season_format, + txt(R.string.season), + seasonData?.displaySeason ?: indexer.season, + suffix + ) + } } } ) @@ -1598,7 +1603,7 @@ class ResultViewModel2 : ViewModel() { i.posterUrl, episode, null, - seasonData?.displaySeason ?: i.season, + if (seasonData != null) seasonData.displaySeason else i.season, i.data, loadResponse.apiName, id, @@ -1633,7 +1638,7 @@ class ResultViewModel2 : ViewModel() { if (!existingEpisodes.contains(id)) { existingEpisodes.add(id) val seasonIndex = episode.season?.minus(1) - val currentSeason = + val seasonData = loadResponse.seasonNames.getSeason(episode.season) val ep = @@ -1643,7 +1648,7 @@ class ResultViewModel2 : ViewModel() { episode.posterUrl, episodeIndex, seasonIndex, - currentSeason?.displaySeason ?: episode.season, + if (seasonData != null) seasonData.displaySeason else episode.season, episode.data, loadResponse.apiName, id, @@ -1747,16 +1752,17 @@ class ResultViewModel2 : ViewModel() { val seasonData = loadResponse.seasonNames.getSeason(seasonNumber) val fixedSeasonNumber = seasonData?.displaySeason ?: seasonNumber val suffix = seasonData?.name?.let { " $it" } ?: "" - - val name = - /*loadResponse.seasonNames?.firstOrNull { it.season == seasonNumber }?.name?.let { seasonData -> - txt(seasonData) - } ?:*/txt( - R.string.season_format, - txt(R.string.season), - fixedSeasonNumber, - suffix - ) + // If displaySeason is null then only show the name! + val name = if (seasonData?.name != null && seasonData.displaySeason == null) { + txt(seasonData.name) + } else { + txt( + R.string.season_format, + txt(R.string.season), + fixedSeasonNumber, + suffix + ) + } name to seasonNumber }) } @@ -1812,7 +1818,12 @@ class ResultViewModel2 : ViewModel() { } private fun loadTrailers(loadResponse: LoadResponse) = ioSafe { - _trailers.postValue(getTrailers(loadResponse, 3)) // we dont want to fetch too many trailers + _trailers.postValue( + getTrailers( + loadResponse, + 3 + ) + ) // we dont want to fetch too many trailers } private suspend fun getTrailers(