From 703263246ef3552c3b73a53fa695ced0ddf4baae Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 27 Sep 2020 13:42:49 -0400 Subject: [PATCH] Clean up bottom nav bar scrolling behavior toggling (cherry picked from commit caeab0a63b41cad0fe500be5bb022569095aaf1e) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt --- .../kanade/tachiyomi/ui/main/MainActivity.kt | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index eb2326c3a..df1a31331 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -10,6 +10,7 @@ import android.view.ViewGroup import android.widget.Toast import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.view.isVisible +import androidx.core.view.updateLayoutParams import androidx.preference.PreferenceDialogController import com.bluelinelabs.conductor.Conductor import com.bluelinelabs.conductor.Controller @@ -114,7 +115,10 @@ class MainActivity : BaseActivity() { bottomNavAnimator = ViewHeightAnimator(binding.bottomNav) // Set behavior of bottom nav - setBottomBarBehaviorOnScroll() + preferences.hideBottomBar() + .asImmediateFlow { setBottomNavBehaviorOnScroll() } + .launchIn(scope) + binding.bottomNav.setOnNavigationItemSelectedListener { item -> val id = item.itemId @@ -364,12 +368,6 @@ class MainActivity : BaseActivity() { !isConfirmingExit } - private fun setBottomBarBehaviorOnScroll() { - val layoutParams = binding.bottomNav.layoutParams as CoordinatorLayout.LayoutParams - layoutParams.behavior = - if (preferences.hideBottomBar().get()) HideBottomViewOnScrollBehavior() else null - } - fun setSelectedNavItem(itemId: Int) { if (!isFinishing) { binding.bottomNav.selectedItemId = itemId @@ -399,7 +397,6 @@ class MainActivity : BaseActivity() { if (to is RootController) { // Always show bottom nav again when returning to a RootController showBottomNav(visible = true, collapse = from !is RootController) - setBottomBarBehaviorOnScroll() } if (from is TabbedController) { @@ -453,6 +450,17 @@ class MainActivity : BaseActivity() { } } + private fun setBottomNavBehaviorOnScroll() { + showBottomNav(visible = true) + + binding.bottomNav.updateLayoutParams { + behavior = when { + preferences.hideBottomBar().get() -> HideBottomViewOnScrollBehavior() + else -> null + } + } + } + companion object { // Shortcut actions const val SHORTCUT_LIBRARY = "eu.kanade.tachiyomi.SHOW_LIBRARY"