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
This commit is contained in:
arkon 2020-09-27 13:42:49 -04:00 committed by Jobobby04
parent 59020deb6f
commit 703263246e

View File

@ -10,6 +10,7 @@ import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams
import androidx.preference.PreferenceDialogController import androidx.preference.PreferenceDialogController
import com.bluelinelabs.conductor.Conductor import com.bluelinelabs.conductor.Conductor
import com.bluelinelabs.conductor.Controller import com.bluelinelabs.conductor.Controller
@ -114,7 +115,10 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
bottomNavAnimator = ViewHeightAnimator(binding.bottomNav) bottomNavAnimator = ViewHeightAnimator(binding.bottomNav)
// Set behavior of bottom nav // Set behavior of bottom nav
setBottomBarBehaviorOnScroll() preferences.hideBottomBar()
.asImmediateFlow { setBottomNavBehaviorOnScroll() }
.launchIn(scope)
binding.bottomNav.setOnNavigationItemSelectedListener { item -> binding.bottomNav.setOnNavigationItemSelectedListener { item ->
val id = item.itemId val id = item.itemId
@ -364,12 +368,6 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
!isConfirmingExit !isConfirmingExit
} }
private fun setBottomBarBehaviorOnScroll() {
val layoutParams = binding.bottomNav.layoutParams as CoordinatorLayout.LayoutParams
layoutParams.behavior =
if (preferences.hideBottomBar().get()) HideBottomViewOnScrollBehavior<View>() else null
}
fun setSelectedNavItem(itemId: Int) { fun setSelectedNavItem(itemId: Int) {
if (!isFinishing) { if (!isFinishing) {
binding.bottomNav.selectedItemId = itemId binding.bottomNav.selectedItemId = itemId
@ -399,7 +397,6 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
if (to is RootController) { if (to is RootController) {
// Always show bottom nav again when returning to a RootController // Always show bottom nav again when returning to a RootController
showBottomNav(visible = true, collapse = from !is RootController) showBottomNav(visible = true, collapse = from !is RootController)
setBottomBarBehaviorOnScroll()
} }
if (from is TabbedController) { if (from is TabbedController) {
@ -453,6 +450,17 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
} }
} }
private fun setBottomNavBehaviorOnScroll() {
showBottomNav(visible = true)
binding.bottomNav.updateLayoutParams<CoordinatorLayout.LayoutParams> {
behavior = when {
preferences.hideBottomBar().get() -> HideBottomViewOnScrollBehavior<View>()
else -> null
}
}
}
companion object { companion object {
// Shortcut actions // Shortcut actions
const val SHORTCUT_LIBRARY = "eu.kanade.tachiyomi.SHOW_LIBRARY" const val SHORTCUT_LIBRARY = "eu.kanade.tachiyomi.SHOW_LIBRARY"