[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