From c6dd54d200b480a0637c47d1fb3f618c46fc82b5 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Mon, 6 Mar 2023 22:47:45 +0530 Subject: [PATCH] fix: Implement onBackPressedDispatcher in AbsSlidingMusicPanelActivity --- .../base/AbsSlidingMusicPanelActivity.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index 41f0fa720..3dc298aa1 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -26,6 +26,7 @@ import android.view.ViewGroup import android.view.ViewTreeObserver import android.view.animation.PathInterpolator import android.widget.FrameLayout +import androidx.activity.OnBackPressedCallback import androidx.core.animation.doOnEnd import androidx.core.view.WindowInsetsCompat import androidx.core.view.isGone @@ -217,6 +218,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), bottomSheetBehavior = from(binding.slidingPanel) bottomSheetBehavior.addBottomSheetCallback(bottomSheetCallbackList) bottomSheetBehavior.isHideable = PreferenceUtil.swipeDownToDismiss + bottomSheetBehavior.significantVelocityThreshold = 300 setMiniPlayerAlphaProgress(0F) } @@ -229,6 +231,14 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), if (bottomSheetBehavior.state == STATE_EXPANDED) { setMiniPlayerAlphaProgress(1f) } + onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (!handleBackPress()) { + remove() + onBackPressedDispatcher.onBackPressed() + } + } + }) } override fun onDestroy() { @@ -392,10 +402,6 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), } } - override fun onBackPressed() { - if (!handleBackPress()) super.onBackPressed() - } - private fun handleBackPress(): Boolean { if (bottomSheetBehavior.peekHeight != 0 && playerFragment.onBackPressed()) return true if (panelState == STATE_EXPANDED) {