Fix main navigation bar behavior

master
Koitharu 2 years ago
parent 18dd205051
commit b246575486
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -11,6 +11,7 @@ import android.view.ViewPropertyAnimator
import androidx.annotation.AttrRes import androidx.annotation.AttrRes
import androidx.annotation.StyleRes import androidx.annotation.StyleRes
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.isVisible
import androidx.customview.view.AbsSavedState import androidx.customview.view.AbsSavedState
import androidx.interpolator.view.animation.FastOutLinearInInterpolator import androidx.interpolator.view.animation.FastOutLinearInInterpolator
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator import androidx.interpolator.view.animation.LinearOutSlowInInterpolator
@ -47,6 +48,9 @@ class SlidingBottomNavigationView @JvmOverloads constructor(
} }
} }
val isShownOrShowing: Boolean
get() = isVisible && currentState == STATE_UP
override fun getBehavior(): CoordinatorLayout.Behavior<*> { override fun getBehavior(): CoordinatorLayout.Behavior<*> {
return behavior return behavior
} }

@ -281,6 +281,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
adjustFabVisibility() adjustFabVisibility()
bottomNav?.hide() bottomNav?.hide()
viewBinding.toolbarCard.isInvisible = true viewBinding.toolbarCard.isInvisible = true
updateContainerBottomMargin()
} }
override fun onSupportActionModeFinished(mode: ActionMode) { override fun onSupportActionModeFinished(mode: ActionMode) {
@ -288,6 +289,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
adjustFabVisibility() adjustFabVisibility()
bottomNav?.show() bottomNav?.show()
viewBinding.toolbarCard.isInvisible = false viewBinding.toolbarCard.isInvisible = false
updateContainerBottomMargin()
} }
private fun onOpenReader(manga: Manga) { private fun onOpenReader(manga: Manga) {
@ -403,6 +405,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
) )
bottomNav?.showOrHide(!isOpened) bottomNav?.showOrHide(!isOpened)
closeSearchCallback.isEnabled = isOpened closeSearchCallback.isEnabled = isOpened
updateContainerBottomMargin()
} }
private fun requestNotificationsPermission() { private fun requestNotificationsPermission() {
@ -439,7 +442,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), AppBarOwner, BottomNav
private fun updateContainerBottomMargin() { private fun updateContainerBottomMargin() {
val bottomNavBar = viewBinding.bottomNav ?: return val bottomNavBar = viewBinding.bottomNav ?: return
val newMargin = if (bottomNavBar.isPinned) bottomNavBar.height else 0 val newMargin = if (bottomNavBar.isPinned && bottomNavBar.isShownOrShowing) bottomNavBar.height else 0
with(viewBinding.container) { with(viewBinding.container) {
val params = layoutParams as MarginLayoutParams val params = layoutParams as MarginLayoutParams
if (params.bottomMargin != newMargin) { if (params.bottomMargin != newMargin) {

Loading…
Cancel
Save