mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 23:51:21 +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 -> {
|
SubtitlePlaybackMode.SMART -> {
|
||||||
if (subtitleLanguage.isNotNullOrBlank()) {
|
if (subtitleLanguage.isNotNullOrBlank()) {
|
||||||
val audioLanguage = userConfig?.audioLanguagePreference
|
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 == subtitleLanguage }
|
||||||
?: candidates.firstOrNull { it.language.isUnknown }
|
?: candidates.firstOrNull { it.language.isUnknown }
|
||||||
} else {
|
} else {
|
||||||
|
// Otherwise, show forced subtitles in preferred lang
|
||||||
candidates.firstOrNull { it.isForced && it.language == subtitleLanguage }
|
candidates.firstOrNull { it.isForced && it.language == subtitleLanguage }
|
||||||
?: candidates.firstOrNull { it.isForced && it.language.isUnknown }
|
?: candidates.firstOrNull { it.isForced && it.language.isUnknown }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -355,7 +355,7 @@ class TestStreamChoiceServiceSmart(
|
||||||
userAudioLang = null,
|
userAudioLang = null,
|
||||||
),
|
),
|
||||||
TestInput(
|
TestInput(
|
||||||
1,
|
null,
|
||||||
SubtitlePlaybackMode.SMART,
|
SubtitlePlaybackMode.SMART,
|
||||||
subtitles =
|
subtitles =
|
||||||
listOf(
|
listOf(
|
||||||
|
|
@ -367,6 +367,18 @@ class TestStreamChoiceServiceSmart(
|
||||||
userSubtitleLang = "eng",
|
userSubtitleLang = "eng",
|
||||||
userAudioLang = null,
|
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(
|
TestInput(
|
||||||
2,
|
0,
|
||||||
SubtitlePlaybackMode.SMART,
|
SubtitlePlaybackMode.SMART,
|
||||||
subtitles =
|
subtitles =
|
||||||
listOf(
|
listOf(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue