See https://github.com/androidx/media/blob/release/libraries/common/src/main/java/androidx/media3/common/util/Util.java additionalIsoLanguageReplacements for the list of languages being mapped. Seems like always taking the last part and feeding that to Locale works. Closes #737
17 lines
561 B
Kotlin
17 lines
561 B
Kotlin
package dev.jdtech.jellyfin
|
|
|
|
import androidx.media3.common.Tracks
|
|
import java.util.Locale
|
|
|
|
fun List<Tracks.Group>.getTrackNames(): Array<String> {
|
|
return this.map { group ->
|
|
val nameParts: MutableList<String?> = mutableListOf()
|
|
val format = group.mediaTrackGroup.getFormat(0)
|
|
nameParts.run {
|
|
add(format.label)
|
|
add(format.language?.let { Locale(it.split("-").last()).displayLanguage })
|
|
add(format.codecs)
|
|
filterNotNull().joinToString(separator = " - ")
|
|
}
|
|
}.toTypedArray()
|
|
}
|