From 43555b3b1a13fbc717eb0828e58e273398a9ccf4 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 23 May 2021 13:05:45 -0400 Subject: [PATCH] Hide irrelevant settings on tablets (cherry picked from commit 1b52acdad7771dcd4de0d4f8fe4985db8b1d9182) --- .../tachiyomi/ui/manga/MangaController.kt | 30 +++++++++---------- .../ui/setting/SettingsGeneralController.kt | 11 ++++--- .../ui/setting/SettingsLibraryController.kt | 11 ++++--- .../util/system/ContextExtensions.kt | 7 +++++ 4 files changed, 36 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index ff3d90d9d..f4c9608de 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -330,6 +330,18 @@ class MangaController : it.scrollEvents() .onEach { updateToolbarTitleAlpha() } .launchIn(viewScope) + + // Skips directly to chapters list if navigated to from the library + it.post { + if (!fromSource && preferences.jumpToChapters()) { + (it.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(1, 0) + } + + // Delayed in case we need to jump to chapters + it.post { + updateToolbarTitleAlpha() + } + } } // Tablet layout binding.infoRecycler?.let { @@ -348,19 +360,7 @@ class MangaController : chaptersAdapter?.fastScroller = binding.fastScroller - actionFabScrollListener = actionFab?.shrinkOnScroll(chaptersRecycler) - - // Skips directly to chapters list if navigated to from the library - chaptersRecycler.post { - if (!fromSource && preferences.jumpToChapters()) { - (chaptersRecycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(1, 0) - } - - // Delayed in case we need to jump to chapters - binding.fullRecycler?.post { - updateToolbarTitleAlpha() - } - } + actionFabScrollListener = actionFab?.shrinkOnScroll(chapterRecycler) binding.swipeRefresh.refreshes() .onEach { @@ -448,7 +448,7 @@ class MangaController : override fun cleanupFab(fab: ExtendedFloatingActionButton) { fab.setOnClickListener(null) - actionFabScrollListener?.let { binding.fullRecycler?.removeOnScrollListener(it) } + actionFabScrollListener?.let { chapterRecycler.removeOnScrollListener(it) } actionFab = null } @@ -1517,7 +1517,7 @@ class MangaController : // Tracker sheet - end - private val chaptersRecycler: RecyclerView + private val chapterRecycler: RecyclerView get() = binding.fullRecycler ?: binding.chaptersRecycler!! companion object { 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 e43fcfb2f..a3887d516 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 @@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.util.preference.summaryRes import eu.kanade.tachiyomi.util.preference.switchPreference import eu.kanade.tachiyomi.util.preference.titleRes import eu.kanade.tachiyomi.util.system.LocaleHelper +import eu.kanade.tachiyomi.util.system.isTablet import kotlinx.coroutines.flow.launchIn import java.util.Date import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys @@ -46,10 +47,12 @@ class SettingsGeneralController : SettingsController() { titleRes = R.string.pref_confirm_exit defaultValue = false } - switchPreference { - key = Keys.hideBottomBar - titleRes = R.string.pref_hide_bottom_bar_on_scroll - defaultValue = true + if (!context.isTablet()) { + switchPreference { + key = Keys.hideBottomBar + titleRes = R.string.pref_hide_bottom_bar_on_scroll + defaultValue = true + } } switchPreference { key = Keys.hideUpdatesButton diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt index ad5f9e99c..921a61b4a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt @@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.util.preference.preferenceCategory import eu.kanade.tachiyomi.util.preference.summaryRes import eu.kanade.tachiyomi.util.preference.switchPreference import eu.kanade.tachiyomi.util.preference.titleRes +import eu.kanade.tachiyomi.util.system.isTablet import eu.kanade.tachiyomi.widget.MinMaxNumberPicker import eu.kanade.tachiyomi.widget.materialdialogs.QuadStateCheckBox import eu.kanade.tachiyomi.widget.materialdialogs.listItemsQuadStateMultiChoice @@ -84,10 +85,12 @@ class SettingsLibraryController : SettingsController() { } .launchIn(viewScope) } - switchPreference { - key = Keys.jumpToChapters - titleRes = R.string.pref_jump_to_chapters - defaultValue = false + if (!context.isTablet()) { + switchPreference { + key = Keys.jumpToChapters + titleRes = R.string.pref_jump_to_chapters + defaultValue = false + } } // SY --> preference { diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index 3344e9817..0cb74bb9a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -258,3 +258,10 @@ fun Context.createFileInCacheDir(name: String): File { file.createNewFile() return file } + +/** + * We consider anything with a width of >= 600dp as a tablet, i.e. with layouts in layout-sw600dp. + */ +fun Context.isTablet(): Boolean { + return resources.configuration.screenWidthDp >= 600 +}