Skip to content

Commit

Permalink
fix: audio track names scrambled
Browse files Browse the repository at this point in the history
  • Loading branch information
rebelonion committed May 7, 2024
1 parent 7fdd8d5 commit 9d13920
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
9 changes: 5 additions & 4 deletions app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL

private var downloadId: String? = null
private var hasExtSubtitles = false
private var audioLanguages = mutableListOf<String>()
private var audioLanguages = mutableListOf<Pair<String,String>>()

companion object {
var initialized = false
Expand Down Expand Up @@ -1548,8 +1548,9 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
val audioMediaItem = mutableListOf<MediaItem>()
audioLanguages.clear()
ext.audioTracks.forEach {
val code = LanguageMapper.getLanguageCode(it.lang)
audioLanguages.add(code)
var code = LanguageMapper.getLanguageCode(it.lang)
if (code == "all") code = "un"
audioLanguages.add(Pair(it.lang, code))
audioMediaItem.add(
MediaItem.Builder()
.setUri(it.url)
Expand All @@ -1560,7 +1561,7 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
}

val audioSources = audioMediaItem.map { mediaItem ->
if (mediaItem.localConfiguration?.uri.toString().endsWith(".m3u8")) {
if (mediaItem.localConfiguration?.uri.toString().contains(".m3u8")) {
HlsMediaSource.Factory(cacheFactory).createMediaSource(mediaItem)
} else {
DefaultMediaSourceFactory(cacheFactory).createMediaSource(mediaItem)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ani.dantotsu.media.anime

import android.annotation.SuppressLint
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
Expand All @@ -22,7 +23,7 @@ class TrackGroupDialogFragment(
private var instance: ExoplayerView,
private var trackGroups: ArrayList<Tracks.Group>,
private var type: @TrackType Int,
private var overrideTrackNames: List<String>? = null
private var overrideTrackNames: List<Pair<String, String>>? = null
) : BottomSheetDialogFragment() {
private var _binding: BottomSheetSubtitlesBinding? = null
private val binding get() = _binding!!
Expand Down Expand Up @@ -57,12 +58,16 @@ class TrackGroupDialogFragment(
)
)

@SuppressLint("SetTextI18n")
@OptIn(UnstableApi::class)
override fun onBindViewHolder(holder: StreamViewHolder, position: Int) {
val binding = holder.binding
trackGroups[position].let { trackGroup ->
when (val language = overrideTrackNames?.getOrNull(position)
?: trackGroup.getTrackFormat(0).language?.lowercase()) {
if (overrideTrackNames?.getOrNull(position - (trackGroups.size - (overrideTrackNames?.size?:0))) != null) {
val pair = overrideTrackNames!![position - (trackGroups.size - overrideTrackNames!!.size)]
binding.subtitleTitle.text =
"[${pair.second}] ${pair.first}"
} else when (val language = trackGroup.getTrackFormat(0).language?.lowercase()) {
null -> {
binding.subtitleTitle.text =
getString(R.string.unknown_track, "Track $position")
Expand Down

0 comments on commit 9d13920

Please sign in to comment.