From 9d13920f6399a95c451a85532630c9d499c04e09 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Tue, 7 May 2024 06:50:00 -0500 Subject: [PATCH] fix: audio track names scrambled --- .../java/ani/dantotsu/media/anime/ExoplayerView.kt | 9 +++++---- .../dantotsu/media/anime/TrackGroupDialogFragment.kt | 11 ++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt index a1efab44..ed2af1e5 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt @@ -227,7 +227,7 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL private var downloadId: String? = null private var hasExtSubtitles = false - private var audioLanguages = mutableListOf() + private var audioLanguages = mutableListOf>() companion object { var initialized = false @@ -1548,8 +1548,9 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL val audioMediaItem = mutableListOf() 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) @@ -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) diff --git a/app/src/main/java/ani/dantotsu/media/anime/TrackGroupDialogFragment.kt b/app/src/main/java/ani/dantotsu/media/anime/TrackGroupDialogFragment.kt index ecbfd982..28ce26fb 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/TrackGroupDialogFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/TrackGroupDialogFragment.kt @@ -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 @@ -22,7 +23,7 @@ class TrackGroupDialogFragment( private var instance: ExoplayerView, private var trackGroups: ArrayList, private var type: @TrackType Int, - private var overrideTrackNames: List? = null + private var overrideTrackNames: List>? = null ) : BottomSheetDialogFragment() { private var _binding: BottomSheetSubtitlesBinding? = null private val binding get() = _binding!! @@ -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")