mirror of
https://github.com/cmclark00/RetroMusicPlayer.git
synced 2025-05-17 23:55:21 +01:00
Fix back button behaviour
This commit is contained in:
parent
4e5ff47324
commit
e80082d5a8
2 changed files with 17 additions and 11 deletions
|
@ -117,9 +117,6 @@ class MainActivity : AbsCastActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSupportNavigateUp(): Boolean =
|
|
||||||
findNavController(R.id.fragment_container).navigateUp()
|
|
||||||
|
|
||||||
override fun onNewIntent(intent: Intent?) {
|
override fun onNewIntent(intent: Intent?) {
|
||||||
super.onNewIntent(intent)
|
super.onNewIntent(intent)
|
||||||
val expand = intent?.extra<Boolean>(EXPAND_PANEL)?.value ?: false
|
val expand = intent?.extra<Boolean>(EXPAND_PANEL)?.value ?: false
|
||||||
|
|
|
@ -33,6 +33,7 @@ import androidx.core.view.isGone
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.view.updateLayoutParams
|
import androidx.core.view.updateLayoutParams
|
||||||
import androidx.fragment.app.commit
|
import androidx.fragment.app.commit
|
||||||
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||||
import code.name.monkey.retromusic.ADAPTIVE_COLOR_APP
|
import code.name.monkey.retromusic.ADAPTIVE_COLOR_APP
|
||||||
import code.name.monkey.retromusic.ALBUM_COVER_STYLE
|
import code.name.monkey.retromusic.ALBUM_COVER_STYLE
|
||||||
|
@ -132,6 +133,8 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
||||||
|
|
||||||
private val panelState: Int
|
private val panelState: Int
|
||||||
get() = bottomSheetBehavior.state
|
get() = bottomSheetBehavior.state
|
||||||
|
private var panelStateBefore: Int? = null
|
||||||
|
private var panelStateCurrent: Int? = null
|
||||||
private lateinit var binding: SlidingMusicPanelLayoutBinding
|
private lateinit var binding: SlidingMusicPanelLayoutBinding
|
||||||
private var isInOneTabMode = false
|
private var isInOneTabMode = false
|
||||||
|
|
||||||
|
@ -140,10 +143,13 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
||||||
|
|
||||||
private val onBackPressedCallback = object : OnBackPressedCallback(true) {
|
private val onBackPressedCallback = object : OnBackPressedCallback(true) {
|
||||||
override fun handleOnBackPressed() {
|
override fun handleOnBackPressed() {
|
||||||
println("Handle back press ${bottomSheetBehavior.state}")
|
if (handleBackPress()) {
|
||||||
if (!handleBackPress()) {
|
return
|
||||||
remove()
|
}
|
||||||
onBackPressedDispatcher.onBackPressed()
|
val navHostFragment =
|
||||||
|
supportFragmentManager.findFragmentById(R.id.fragment_container) as NavHostFragment
|
||||||
|
if (!navHostFragment.navController.navigateUp()) {
|
||||||
|
finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,7 +170,10 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
||||||
onBackPressedCallback.isEnabled = newState == STATE_EXPANDED
|
if (panelStateCurrent != null) {
|
||||||
|
panelStateBefore = panelStateCurrent
|
||||||
|
}
|
||||||
|
panelStateCurrent = newState
|
||||||
when (newState) {
|
when (newState) {
|
||||||
STATE_EXPANDED -> {
|
STATE_EXPANDED -> {
|
||||||
onPanelExpanded()
|
onPanelExpanded()
|
||||||
|
@ -224,7 +233,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
||||||
|
|
||||||
navigationBarColor = surfaceColor()
|
navigationBarColor = surfaceColor()
|
||||||
|
|
||||||
onBackPressedDispatcher.addCallback(onBackPressedCallback)
|
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupBottomSheet() {
|
private fun setupBottomSheet() {
|
||||||
|
@ -276,7 +285,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
||||||
|
|
||||||
ALBUM_COVER_TRANSFORM, CAROUSEL_EFFECT,
|
ALBUM_COVER_TRANSFORM, CAROUSEL_EFFECT,
|
||||||
ALBUM_COVER_STYLE, TOGGLE_VOLUME, EXTRA_SONG_INFO, CIRCLE_PLAY_BUTTON,
|
ALBUM_COVER_STYLE, TOGGLE_VOLUME, EXTRA_SONG_INFO, CIRCLE_PLAY_BUTTON,
|
||||||
-> {
|
-> {
|
||||||
chooseFragmentForTheme()
|
chooseFragmentForTheme()
|
||||||
onServiceConnected()
|
onServiceConnected()
|
||||||
}
|
}
|
||||||
|
@ -408,7 +417,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleBackPress(): Boolean {
|
private fun handleBackPress(): Boolean {
|
||||||
if (panelState == STATE_EXPANDED) {
|
if (panelState == STATE_EXPANDED || (panelState == STATE_SETTLING && panelStateBefore != STATE_EXPANDED)) {
|
||||||
collapsePanel()
|
collapsePanel()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue