Browse Source

Manage back press for the AudioPlayerContainerActivity

merge-requests/2314/head
Nicolas Pomepuy 8 months ago
committed by Duncan McNamara
parent
commit
5b46c3f069
  1. 16
      application/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.kt

16
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 { open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, SchedulerCallback, PlayerOptionsDelegateCallback {
private lateinit var onBackPressedCallback: OnBackPressedCallback
private var bottomBar: BottomNavigationView? = null private var bottomBar: BottomNavigationView? = null
lateinit var appBarLayout: AppBarLayout lateinit var appBarLayout: AppBarLayout
protected lateinit var toolbar: Toolbar protected lateinit var toolbar: Toolbar
@ -225,7 +226,7 @@ open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, Sched
WindowInsetsCompat.CONSUMED WindowInsetsCompat.CONSUMED
} }
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() { override fun handleOnBackPressed() {
if (slideDownAudioPlayer()) return if (slideDownAudioPlayer()) return
if (supportFragmentManager.backStackEntryCount == 0) if (supportFragmentManager.backStackEntryCount == 0)
@ -234,7 +235,17 @@ open class AudioPlayerContainerActivity : BaseActivity(), KeycodeListener, Sched
supportFragmentManager.popBackStack() 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)) STATE_HIDDEN -> audioPlayerContainer.announceForAccessibility(getString(R.string.talkback_audio_player_closed))
} }
} }
manageBackstate()
updateToolbarScrollability(newState == STATE_COLLAPSED) updateToolbarScrollability(newState == STATE_COLLAPSED)
} }
}) })

Loading…
Cancel
Save