mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-23 01:21:52 +01:00
Add option to hide bottom bar when scrolling (#3758)
* [wip] hardcoded flag for hide on scroll * add corresponding option in settings * clean up a little Co-authored-by: arkon <arkon@users.noreply.github.com>
This commit is contained in:
parent
458e761b45
commit
3784d1a8f2
@ -13,6 +13,8 @@ object PreferenceKeys {
|
|||||||
|
|
||||||
const val confirmExit = "pref_confirm_exit"
|
const val confirmExit = "pref_confirm_exit"
|
||||||
|
|
||||||
|
const val hideBottomBar = "pref_hide_bottom_bar_on_scroll"
|
||||||
|
|
||||||
const val rotation = "pref_rotation_type_key"
|
const val rotation = "pref_rotation_type_key"
|
||||||
|
|
||||||
const val enableTransitions = "pref_enable_transitions_key"
|
const val enableTransitions = "pref_enable_transitions_key"
|
||||||
|
@ -61,6 +61,8 @@ class PreferencesHelper(val context: Context) {
|
|||||||
|
|
||||||
fun confirmExit() = prefs.getBoolean(Keys.confirmExit, false)
|
fun confirmExit() = prefs.getBoolean(Keys.confirmExit, false)
|
||||||
|
|
||||||
|
fun hideBottomBar() = flowPrefs.getBoolean(Keys.hideBottomBar, true)
|
||||||
|
|
||||||
fun useBiometricLock() = flowPrefs.getBoolean(Keys.useBiometricLock, false)
|
fun useBiometricLock() = flowPrefs.getBoolean(Keys.useBiometricLock, false)
|
||||||
|
|
||||||
fun lockAppAfter() = flowPrefs.getInt(Keys.lockAppAfter, 0)
|
fun lockAppAfter() = flowPrefs.getInt(Keys.lockAppAfter, 0)
|
||||||
|
@ -90,6 +90,7 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
|||||||
bottomNavAnimator = ViewHeightAnimator(binding.bottomNav)
|
bottomNavAnimator = ViewHeightAnimator(binding.bottomNav)
|
||||||
|
|
||||||
// Set behavior of bottom nav
|
// Set behavior of bottom nav
|
||||||
|
setBottomBarBehaviorOnScroll()
|
||||||
binding.bottomNav.setOnNavigationItemSelectedListener { item ->
|
binding.bottomNav.setOnNavigationItemSelectedListener { item ->
|
||||||
val id = item.itemId
|
val id = item.itemId
|
||||||
|
|
||||||
@ -307,6 +308,12 @@ 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
|
||||||
@ -336,6 +343,7 @@ 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) {
|
||||||
@ -373,19 +381,19 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
|||||||
|
|
||||||
fun showBottomNav(visible: Boolean, collapse: Boolean = false) {
|
fun showBottomNav(visible: Boolean, collapse: Boolean = false) {
|
||||||
val layoutParams = binding.bottomNav.layoutParams as CoordinatorLayout.LayoutParams
|
val layoutParams = binding.bottomNav.layoutParams as CoordinatorLayout.LayoutParams
|
||||||
val bottomViewNavigationBehavior = layoutParams.behavior as HideBottomViewOnScrollBehavior
|
val bottomViewNavigationBehavior = layoutParams.behavior as? HideBottomViewOnScrollBehavior
|
||||||
if (visible) {
|
if (visible) {
|
||||||
if (collapse) {
|
if (collapse) {
|
||||||
bottomNavAnimator.expand()
|
bottomNavAnimator.expand()
|
||||||
}
|
}
|
||||||
|
|
||||||
bottomViewNavigationBehavior.slideUp(binding.bottomNav)
|
bottomViewNavigationBehavior?.slideUp(binding.bottomNav)
|
||||||
} else {
|
} else {
|
||||||
if (collapse) {
|
if (collapse) {
|
||||||
bottomNavAnimator.collapse()
|
bottomNavAnimator.collapse()
|
||||||
}
|
}
|
||||||
|
|
||||||
bottomViewNavigationBehavior.slideDown(binding.bottomNav)
|
bottomViewNavigationBehavior?.slideDown(binding.bottomNav)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,6 +45,11 @@ class SettingsGeneralController : SettingsController() {
|
|||||||
titleRes = R.string.pref_confirm_exit
|
titleRes = R.string.pref_confirm_exit
|
||||||
defaultValue = false
|
defaultValue = false
|
||||||
}
|
}
|
||||||
|
switchPreference {
|
||||||
|
key = Keys.hideBottomBar
|
||||||
|
titleRes = R.string.pref_hide_bottom_bar_on_scroll
|
||||||
|
defaultValue = true
|
||||||
|
}
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
preference {
|
preference {
|
||||||
key = "pref_manage_notifications"
|
key = "pref_manage_notifications"
|
||||||
|
@ -47,7 +47,6 @@
|
|||||||
app:itemIconTint="@color/bottom_nav_selector"
|
app:itemIconTint="@color/bottom_nav_selector"
|
||||||
app:itemTextColor="@color/bottom_nav_selector"
|
app:itemTextColor="@color/bottom_nav_selector"
|
||||||
app:labelVisibilityMode="labeled"
|
app:labelVisibilityMode="labeled"
|
||||||
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
|
|
||||||
app:layout_insetEdge="bottom"
|
app:layout_insetEdge="bottom"
|
||||||
app:menu="@menu/bottom_nav" />
|
app:menu="@menu/bottom_nav" />
|
||||||
|
|
||||||
|
@ -157,6 +157,7 @@
|
|||||||
<string name="system_default">Default</string>
|
<string name="system_default">Default</string>
|
||||||
<string name="pref_date_format">Date format</string>
|
<string name="pref_date_format">Date format</string>
|
||||||
<string name="pref_confirm_exit">Confirm exit</string>
|
<string name="pref_confirm_exit">Confirm exit</string>
|
||||||
|
<string name="pref_hide_bottom_bar_on_scroll">Hide bottom bar on scroll</string>
|
||||||
<string name="pref_manage_notifications">Manage notifications</string>
|
<string name="pref_manage_notifications">Manage notifications</string>
|
||||||
|
|
||||||
<string name="pref_category_security">Security</string>
|
<string name="pref_category_security">Security</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user