Skip to content

Commit 7a0575a

Browse files
committed
fix(player): resolve provider order not followed during content generation
1 parent 66212f8 commit 7a0575a

File tree

1 file changed

+18
-20
lines changed

1 file changed

+18
-20
lines changed

domain/provider/src/main/kotlin/com/flixclusive/domain/provider/GetMediaLinksUseCase.kt

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ class GetMediaLinksUseCase
104104
val apis =
105105
getPrioritizedProvidersList(
106106
preferredProvider = preferredProvider,
107-
filmLanguage = film.language,
108107
)
109108

110109
var episodeToUse: Episode? = episode
@@ -315,7 +314,7 @@ class GetMediaLinksUseCase
315314
seasonNumber = 1
316315
episodeNumber = 1
317316
} else {
318-
val (nextSeason, nextEpisode) = getNextEpisodeToWatch(watchHistoryItem)
317+
val (nextSeason, nextEpisode) = getNextEpisodeToWatch(watchHistoryItem!!)
319318
seasonNumber = nextSeason ?: 1
320319
episodeNumber = nextEpisode ?: 1
321320
}
@@ -369,29 +368,23 @@ class GetMediaLinksUseCase
369368
* available that prioritizes the
370369
* given provider and puts it on top of the list
371370
* */
372-
private fun getPrioritizedProvidersList(
373-
preferredProvider: String?,
374-
filmLanguage: String?,
375-
): List<Pair<String, ProviderApi>> {
376-
val apis = providerApiRepository.getAll()
377-
371+
private fun getPrioritizedProvidersList(preferredProvider: String?): List<ProviderApiWithId> {
372+
var providers = providerRepository.getProviders()
378373
if (preferredProvider != null) {
379-
return apis.sortedByDescending { (id, _) ->
380-
id.equals(preferredProvider, true)
374+
providers = providers.sortedByDescending {
375+
it.id.equals(preferredProvider, true)
381376
}
382377
}
383378

384-
if (filmLanguage != null) {
385-
return apis.sortedByDescending { (id, _) ->
386-
providerRepository
387-
.getProviderMetadata(id)
388-
?.language
389-
?.languageCode
390-
?.equals(filmLanguage, ignoreCase = true) == true
379+
return providers
380+
.mapNotNull { provider ->
381+
providerApiRepository.getApi(provider.id)?.let { api ->
382+
ProviderApiWithId(
383+
id = provider.id,
384+
api = api
385+
)
386+
}
391387
}
392-
}
393-
394-
return apis
395388
}
396389

397390
private suspend fun getCorrectWatchId(
@@ -438,3 +431,8 @@ class GetMediaLinksUseCase
438431
}
439432
}
440433
}
434+
435+
private data class ProviderApiWithId(
436+
val id: String,
437+
val api: ProviderApi,
438+
)

0 commit comments

Comments
 (0)