[Android] Manage back press for the AudioPlayerContainerActivity

Nicolas Pomepuy git at videolan.org
Fri Aug 22 08:01:34 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Tue Jul 29 09:09:59 2025 +0200| [5b46c3f069c1a5e470aab15b5f9d5115b79bdb5e] | committer: Duncan McNamara

Manage back press for the AudioPlayerContainerActivity

> https://code.videolan.org/videolan/vlc-android/commit/5b46c3f069c1a5e470aab15b5f9d5115b79bdb5e
---

 .../org/videolan/vlc/gui/AudioPlayerContainerActivity.kt | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt
index 282efcade4..95ed39b871 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt
@@ -119,6 +119,7 @@ private const val BOOKMARK_VISIBLE: String = "bookmark_visible"
 
 open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, SchedulerCallback, PlayerOptionsDelegateCallback {
 
+    private lateinit var onBackPressedCallback: OnBackPressedCallback
     private var bottomBar: BottomNavigationView? = null
     lateinit var appBarLayout: AppBarLayout
     protected lateinit var toolbar: Toolbar
@@ -225,7 +226,7 @@ open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, Sched
 
             WindowInsetsCompat.CONSUMED
         }
-        onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+        onBackPressedCallback = object : OnBackPressedCallback(true) {
             override fun handleOnBackPressed() {
                 if (slideDownAudioPlayer()) return
                 if (supportFragmentManager.backStackEntryCount == 0)
@@ -234,7 +235,17 @@ open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, Sched
                     supportFragmentManager.popBackStack()
                 }
             }
-        })
+        }
+
+        supportFragmentManager.addOnBackStackChangedListener {
+            manageBackstate()
+        }
+        onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
+        manageBackstate()
+    }
+
+    private fun manageBackstate() {
+        onBackPressedCallback.isEnabled = supportFragmentManager.backStackEntryCount > 0 || isAudioPlayerExpanded
     }
 
     /**
@@ -392,6 +403,7 @@ open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, Sched
                         STATE_HIDDEN -> audioPlayerContainer.announceForAccessibility(getString(R.string.talkback_audio_player_closed))
                     }
                 }
+                manageBackstate()
                 updateToolbarScrollability(newState == STATE_COLLAPSED)
             }
         })



More information about the Android mailing list