[Android] Fix the audio player header flickering
Nicolas Pomepuy
git at videolan.org
Fri Apr 25 05:47:18 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Apr 16 10:25:15 2025 +0200| [ab98652d4d8d03106eb1c4e02eb8154d88d4351b] | committer: Nicolas Pomepuy
Fix the audio player header flickering
It was flickering when, switching from cover mode to play queue mode
> https://code.videolan.org/videolan/vlc-android/commit/ab98652d4d8d03106eb1c4e02eb8154d88d4351b
---
.../vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt | 5 ++++-
.../src/org/videolan/vlc/gui/audio/AudioPlayerAnimator.kt | 10 ++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
index 285bccea99..2b2f790114 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
@@ -768,7 +768,6 @@ class AudioPlayer : Fragment(), PlaylistAdapter.IPlayer, TextWatcher, IAudioPlay
fun onPlaylistSwitchClick(@Suppress("UNUSED_PARAMETER") view: View) {
switchShowCover()
settings.putSingle("audio_player_show_cover", isShowingCover())
- lifecycleScope.launch { doUpdate() }
}
fun onShuffleClick(@Suppress("UNUSED_PARAMETER") view: View) {
@@ -1069,6 +1068,10 @@ class AudioPlayer : Fragment(), PlaylistAdapter.IPlayer, TextWatcher, IAudioPlay
return abRepeatAddMarker
}
+ fun update() {
+ lifecycleScope.launch { doUpdate() }
+ }
+
private val hideSearchRunnable by lazy(LazyThreadSafetyMode.NONE) {
Runnable {
hideSearchField()
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayerAnimator.kt b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayerAnimator.kt
index d98f5d122e..dad85fe0ee 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayerAnimator.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayerAnimator.kt
@@ -35,6 +35,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
import androidx.lifecycle.LifecycleObserver
import androidx.transition.AutoTransition
+import androidx.transition.Transition
import androidx.transition.TransitionManager
import androidx.window.layout.FoldingFeature
import com.google.android.material.bottomsheet.BottomSheetBehavior
@@ -95,6 +96,15 @@ internal class AudioPlayerAnimator : IAudioPlayerAnimator, LifecycleObserver {
private val transition = AutoTransition().apply {
interpolator = AccelerateDecelerateInterpolator()
duration = 300
+ addListener(object : Transition.TransitionListener {
+ override fun onTransitionStart(transition: Transition) { }
+ override fun onTransitionEnd(transition: Transition) {
+ audioPlayer.update()
+ }
+ override fun onTransitionCancel(transition: Transition) { }
+ override fun onTransitionPause(transition: Transition) { }
+ override fun onTransitionResume(transition: Transition) { }
+ })
}
private var showCover = false
set(value) {
More information about the Android
mailing list