mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 15:50:16 +02:00
Better smart subtitles with no preferred audio language (#789)
## Description Another small fix to smart subtitle track selection to better handle the cases where the user does not have a preferred audio language. ### Related issues Addresses issue raises in https://github.com/damontecres/Wholphin/issues/570#issuecomment-3714629517
This commit is contained in:
parent
5975302fb9
commit
f787e9ce1a
2 changed files with 21 additions and 3 deletions
|
|
@ -276,10 +276,16 @@ class StreamChoiceService
|
|||
SubtitlePlaybackMode.SMART -> {
|
||||
if (subtitleLanguage.isNotNullOrBlank()) {
|
||||
val audioLanguage = userConfig?.audioLanguagePreference
|
||||
if (audioLanguage.isNullOrBlank() || audioLanguage != audioStreamLang) {
|
||||
if (
|
||||
// Has preferred subtitle lang & preferred audio, so only show subtitles if actual audio is different
|
||||
(audioLanguage.isNotNullOrBlank() && audioLanguage != audioStreamLang) ||
|
||||
// Has preferred subtitle lang, but no preferred audio lang, so show subtitle if subtitle lang is different from actual audio
|
||||
(audioLanguage.isNullOrBlank() && subtitleLanguage != audioStreamLang)
|
||||
) {
|
||||
candidates.firstOrNull { it.language == subtitleLanguage }
|
||||
?: candidates.firstOrNull { it.language.isUnknown }
|
||||
} else {
|
||||
// Otherwise, show forced subtitles in preferred lang
|
||||
candidates.firstOrNull { it.isForced && it.language == subtitleLanguage }
|
||||
?: candidates.firstOrNull { it.isForced && it.language.isUnknown }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -355,7 +355,7 @@ class TestStreamChoiceServiceSmart(
|
|||
userAudioLang = null,
|
||||
),
|
||||
TestInput(
|
||||
1,
|
||||
null,
|
||||
SubtitlePlaybackMode.SMART,
|
||||
subtitles =
|
||||
listOf(
|
||||
|
|
@ -367,6 +367,18 @@ class TestStreamChoiceServiceSmart(
|
|||
userSubtitleLang = "eng",
|
||||
userAudioLang = null,
|
||||
),
|
||||
TestInput(
|
||||
null,
|
||||
SubtitlePlaybackMode.SMART,
|
||||
subtitles =
|
||||
listOf(
|
||||
subtitle(0, "eng"),
|
||||
subtitle(1, "spa"),
|
||||
),
|
||||
streamAudioLang = "spa",
|
||||
userSubtitleLang = "spa",
|
||||
userAudioLang = null,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -498,7 +510,7 @@ class TestStreamChoiceServiceMultipleChoices(
|
|||
),
|
||||
),
|
||||
TestInput(
|
||||
2,
|
||||
0,
|
||||
SubtitlePlaybackMode.SMART,
|
||||
subtitles =
|
||||
listOf(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue