From 9adbb1b115b796728a68479e07404c94d9d20d86 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 23 May 2021 14:27:44 -0400 Subject: [PATCH] Option to move nav rail buttons to bottom of screen (closes #5158) Based on https://github.com/Jays2Kings/tachiyomiJ2K/commit/90be3e34948d41daf3fd695ef09d60eb6adf960e Co-authored-by: Jays2Kings (cherry picked from commit a462ce3626720ba770b6d1e991be9490a551e83c) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt # app/src/main/res/values/strings.xml --- .../tachiyomi/data/preference/PreferenceKeys.kt | 4 +++- .../tachiyomi/data/preference/PreferencesHelper.kt | 4 +++- .../eu/kanade/tachiyomi/ui/main/MainActivity.kt | 13 +++++++++++-- .../ui/setting/SettingsGeneralController.kt | 10 ++++++++-- app/src/main/res/values/strings.xml | 4 +--- app/src/main/res/values/strings_sy.xml | 3 +++ 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt index c34c502a8..83c62fe2d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt @@ -13,7 +13,9 @@ object PreferenceKeys { const val confirmExit = "pref_confirm_exit" - const val hideBottomBar = "pref_hide_bottom_bar_on_scroll" + const val hideBottomBarOnScroll = "pref_hide_bottom_bar_on_scroll" + + const val showSideNavOnBottom = "pref_show_side_nav_on_bottom" const val enableTransitionsPager = "pref_enable_transitions_pager_key" diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index dcfc62eb8..90ff05414 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -65,7 +65,9 @@ class PreferencesHelper(val context: Context) { fun confirmExit() = prefs.getBoolean(Keys.confirmExit, false) - fun hideBottomBar() = flowPrefs.getBoolean(Keys.hideBottomBar, true) + fun hideBottomBarOnScroll() = flowPrefs.getBoolean(Keys.hideBottomBarOnScroll, true) + + fun showSideNavOnBottom() = flowPrefs.getBoolean(Keys.showSideNavOnBottom, false) fun useAuthenticator() = flowPrefs.getBoolean(Keys.useAuthenticator, false) 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 dd1c5511b..b383b6968 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 @@ -6,6 +6,7 @@ import android.graphics.Color import android.os.Build import android.os.Bundle import android.os.Looper +import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.Toast @@ -170,11 +171,19 @@ class MainActivity : BaseViewBindingActivity() { ) // Set behavior of bottom nav - preferences.hideBottomBar() + preferences.hideBottomBarOnScroll() .asImmediateFlow { setBottomNavBehaviorOnScroll() } .launchIn(lifecycleScope) } + if (binding.sideNav != null) { + preferences.showSideNavOnBottom() + .asImmediateFlow { + binding.sideNav?.menuGravity = if (!it) Gravity.TOP else Gravity.BOTTOM + } + .launchIn(lifecycleScope) + } + nav.setOnItemSelectedListener { item -> val id = item.itemId @@ -569,7 +578,7 @@ class MainActivity : BaseViewBindingActivity() { binding.bottomNav?.updateLayoutParams { behavior = when { - preferences.hideBottomBar().get() -> HideBottomViewOnScrollBehavior() + preferences.hideBottomBarOnScroll().get() -> HideBottomViewOnScrollBehavior() else -> null } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt index a3887d516..6395a0771 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt @@ -47,9 +47,15 @@ class SettingsGeneralController : SettingsController() { titleRes = R.string.pref_confirm_exit defaultValue = false } - if (!context.isTablet()) { + if (context.isTablet()) { switchPreference { - key = Keys.hideBottomBar + key = Keys.showSideNavOnBottom + titleRes = R.string.pref_move_side_nav_to_bottom + defaultValue = false + } + } else { + switchPreference { + key = Keys.hideBottomBarOnScroll titleRes = R.string.pref_hide_bottom_bar_on_scroll defaultValue = true } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ebb183e6a..56232c060 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -166,9 +166,7 @@ Date format Confirm exit Hide bottom bar on scroll - Move Update button to the More tab - Move History button to the More tab - Always show bottom bar labels + Move side navigation buttons to bottom Manage notifications Security diff --git a/app/src/main/res/values/strings_sy.xml b/app/src/main/res/values/strings_sy.xml index 605d9db3b..1c41a8f0c 100644 --- a/app/src/main/res/values/strings_sy.xml +++ b/app/src/main/res/values/strings_sy.xml @@ -179,6 +179,9 @@ Use HIGHLY EXPERIMENTAL automatic ReCAPTCHA solver. Will be grayed out if unsupported by your device. Recommendations in overflow Put the recommendations button in the overflow menu instead of on the manga page + Move Update button to the More tab + Move History button to the More tab + Always show bottom bar labels Sorting Settings