Various minor bug fixes (#1707)
## Description Gathering several small bug fixes: - Clear the backdrop when manually reloading the home page - Convert the "# years old" string resource to plural - Fix a spelling error in the source English strings - Ensure #1680 is respected when searching for subtitles to download - Slightly adjust padding for the header in collection details to match other headers ### Related issues Fixes string issues reported in https://github.com/damontecres/Wholphin/issues/1705#issuecomment-4982909931 ### Testing Emulator ## Screenshots N/A ## AI or LLM usage None
This commit is contained in:
parent
3cc2bf2dd1
commit
35c4d13f8f
35 changed files with 147 additions and 67 deletions
|
|
@ -138,17 +138,7 @@ class StreamChoiceService
|
|||
playbackLanguageChoice?.audioLanguage?.takeIf { it.isNotNullOrBlank() }
|
||||
// If the user has chosen a different language for the series, prefer that
|
||||
val audioLanguage =
|
||||
if (seriesLang != null) {
|
||||
seriesLang
|
||||
} else {
|
||||
val pref = prefs.userPreferences?.preferredAudioLanguage
|
||||
when (pref) {
|
||||
UserProfileSettings.USE_USER_PROFILE -> userConfig?.audioLanguagePreference
|
||||
UserProfileSettings.PREFER_ANY_LANGUAGE -> null
|
||||
else -> pref
|
||||
}
|
||||
}
|
||||
|
||||
seriesLang ?: getPreferredLanguage(MediaStreamType.AUDIO, prefs, userConfig)
|
||||
if (audioLanguage.isNotNullOrBlank()) {
|
||||
val sorted =
|
||||
candidates.sortedWith(compareBy<MediaStream> { it.language }.thenByDescending { it.channels })
|
||||
|
|
@ -242,16 +232,7 @@ class StreamChoiceService
|
|||
val seriesLang =
|
||||
playbackLanguageChoice?.subtitleLanguage?.takeIf { it.isNotNullOrBlank() }
|
||||
val subtitleLanguage =
|
||||
if (seriesLang != null) {
|
||||
seriesLang
|
||||
} else {
|
||||
val pref = prefs.userPreferences?.preferredSubtitleLanguage
|
||||
when (pref) {
|
||||
UserProfileSettings.USE_USER_PROFILE -> userConfig?.subtitleLanguagePreference
|
||||
UserProfileSettings.PREFER_ANY_LANGUAGE -> null
|
||||
else -> pref
|
||||
}?.takeIf { it.isNotNullOrBlank() }
|
||||
}
|
||||
seriesLang ?: getPreferredLanguage(MediaStreamType.SUBTITLE, prefs, userConfig)
|
||||
if (itemPlayback?.subtitleIndex == TrackIndex.ONLY_FORCED) {
|
||||
// Client-side manual override: User selected "Only Forced" in player menu
|
||||
return findForcedTrack(candidates, subtitleLanguage, audioStreamLang)
|
||||
|
|
@ -398,3 +379,36 @@ private val String?.isUnknown: Boolean
|
|||
this.equals("zxx", true)
|
||||
|
||||
private fun String?.equalsLangOrUnknown(lang: String): Boolean = equals(lang, ignoreCase = true) || this.isUnknown
|
||||
|
||||
/**
|
||||
* Based on the user's preferences, get their preferred language for audio or subtitles
|
||||
*
|
||||
* @param prefs the [UserPreferences]
|
||||
*/
|
||||
fun getPreferredLanguage(
|
||||
type: MediaStreamType,
|
||||
prefs: UserPreferences,
|
||||
userConfig: UserConfiguration?,
|
||||
): String? {
|
||||
val (pref, profileLang) =
|
||||
when (type) {
|
||||
MediaStreamType.AUDIO -> {
|
||||
prefs.userPreferences?.preferredAudioLanguage to
|
||||
userConfig?.audioLanguagePreference
|
||||
}
|
||||
|
||||
MediaStreamType.SUBTITLE -> {
|
||||
prefs.userPreferences?.preferredSubtitleLanguage to
|
||||
userConfig?.subtitleLanguagePreference
|
||||
}
|
||||
|
||||
else -> {
|
||||
throw IllegalArgumentException("Only audio or subtitle supported, not $type")
|
||||
}
|
||||
}
|
||||
return when (pref) {
|
||||
UserProfileSettings.USE_USER_PROFILE -> profileLang
|
||||
UserProfileSettings.PREFER_ANY_LANGUAGE -> null
|
||||
else -> pref
|
||||
}?.takeIf { it.isNotNullOrBlank() }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue