@@ -14,7 +14,6 @@ import androidx.constraintlayout.motion.widget.MotionLayout
1414import androidx.constraintlayout.motion.widget.TransitionAdapter
1515import androidx.core.math.MathUtils.clamp
1616import androidx.core.os.bundleOf
17- import androidx.core.os.postDelayed
1817import androidx.core.view.isGone
1918import androidx.core.view.isVisible
2019import androidx.fragment.app.Fragment
@@ -23,7 +22,6 @@ import androidx.fragment.app.commit
2322import androidx.lifecycle.lifecycleScope
2423import androidx.media3.common.MediaMetadata
2524import androidx.media3.common.Player
26- import androidx.media3.common.util.Log
2725import androidx.media3.common.util.UnstableApi
2826import androidx.media3.session.MediaController
2927import com.github.libretube.R
@@ -196,13 +194,11 @@ class AudioPlayerFragment : Fragment(R.layout.fragment_audio_player), AudioPlaye
196194 playerController?.seekTo(bundle.getLong(IntentData .currentPosition))
197195 }
198196
199- binding.openChapters.setOnClickListener {
200- // JSON-encode as work-around for https://github.com/androidx/media/issues/564
201- chaptersModel.chaptersLiveData.value =
202- playerController?.mediaMetadata?.extras?.getString(IntentData .chapters)?.let {
203- JsonHelper .json.decodeFromString(it)
204- }
197+ chaptersModel.chaptersLiveData.observe(viewLifecycleOwner) { chapters ->
198+ _binding ?.openChapters?.isVisible = ! chapters.isNullOrEmpty()
199+ }
205200
201+ binding.openChapters.setOnClickListener {
206202 ChaptersBottomSheet ()
207203 .apply {
208204 arguments = bundleOf(
@@ -458,10 +454,15 @@ class AudioPlayerFragment : Fragment(R.layout.fragment_audio_player), AudioPlaye
458454 mediaMetadata.extras?.getString(IntentData .chapters)?.let {
459455 JsonHelper .json.decodeFromString(it)
460456 }
461- _binding ?.openChapters?.isVisible = ! chapters.isNullOrEmpty()
457+ chaptersModel.chaptersLiveData.value = chapters
462458 }
463459 })
464460 playerController?.mediaMetadata?.let { updateStreamInfo(it) }
461+ // JSON-encode as work-around for https://github.com/androidx/media/issues/564
462+ chaptersModel.chaptersLiveData.value =
463+ playerController?.mediaMetadata?.extras?.getString(IntentData .chapters)?.let {
464+ JsonHelper .json.decodeFromString(it)
465+ }
465466
466467 initializeSeekBar()
467468 }
0 commit comments