File tree Expand file tree Collapse file tree 2 files changed +28
-10
lines changed
android/src/main/kotlin/project/pipepipe/app/ui/component/player Expand file tree Collapse file tree 2 files changed +28
-10
lines changed Original file line number Diff line number Diff line change @@ -725,23 +725,38 @@ private fun MoreMenu(
725725 expanded = showAudioLanguageMenu,
726726 onDismissRequest = { onAudioLanguageMenuChange(false ) }
727727 ) {
728+ val originText = stringResource(MR .strings.sort_origin)
728729 availableLanguages.forEach { language ->
730+ // Get localized language name using Locale
731+ val languageCode = language.first
732+ val locale = java.util.Locale .forLanguageTag(languageCode)
733+ val localizedName = locale.getDisplayLanguage(java.util.Locale .getDefault())
734+ val displayText = if (localizedName.isNotBlank()) {
735+ if (language.second) {
736+ " $localizedName ($originText )"
737+ } else {
738+ localizedName
739+ }
740+ } else {
741+ if (language.second) {
742+ " $languageCode ($originText )"
743+ } else {
744+ languageCode
745+ }
746+ }
747+
729748 DropdownMenuItem (
730749 text = {
731750 Text (
732- text = language.first + if (language.second) " (${
733- stringResource(
734- MR .strings.sort_origin
735- )
736- } )" else " " ,
737- color = if (currentLanguage == language.first)
751+ text = displayText,
752+ color = if (currentLanguage == languageCode)
738753 MaterialTheme .colorScheme.primary
739754 else
740755 MaterialTheme .colorScheme.onSurface
741756 )
742757 },
743758 onClick = {
744- onAudioLanguageSelected(language.first )
759+ onAudioLanguageSelected(languageCode )
745760 onAudioLanguageMenuChange(false )
746761 }
747762 )
Original file line number Diff line number Diff line change @@ -461,10 +461,13 @@ fun VideoPlayer(
461461 val languages = mutableSetOf<Pair <String , Boolean >>()
462462 currentTracks.groups.filter { it.type == C .TRACK_TYPE_AUDIO }.forEach { audioGroup ->
463463 audioGroup?.forEachIndexed { index, format ->
464- val languageName = format.language ? : audioLanguageDefault
465- languages.add(Pair (languageName, languageName.contains(" Original" )))
464+ val rawLanguage = format.language ? : audioLanguageDefault
465+ // Extract pure language code by removing everything after "."
466+ val languageCode = rawLanguage.substringBefore(" ." )
467+ val isOriginal = rawLanguage.contains(" Original" )
468+ languages.add(Pair (languageCode, isOriginal))
466469 if (audioGroup.isTrackSelected(index)) {
467- currentLanguage = languageName
470+ currentLanguage = languageCode
468471 }
469472 }
470473 }
You can’t perform that action at this time.
0 commit comments