Hide irrelevant settings on tablets

This commit is contained in:
arkon 2021-05-23 13:05:45 -04:00
parent 10a638c6b8
commit 1b52acdad7
4 changed files with 36 additions and 23 deletions

View File

@ -237,6 +237,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 {
@ -248,19 +260,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 {
@ -340,7 +340,7 @@ class MangaController :
override fun cleanupFab(fab: ExtendedFloatingActionButton) {
fab.setOnClickListener(null)
actionFabScrollListener?.let { binding.fullRecycler?.removeOnScrollListener(it) }
actionFabScrollListener?.let { chapterRecycler.removeOnScrollListener(it) }
actionFab = null
}
@ -1103,7 +1103,7 @@ class MangaController :
// Tracker sheet - end
private val chaptersRecycler: RecyclerView
private val chapterRecycler: RecyclerView
get() = binding.fullRecycler ?: binding.chaptersRecycler!!
companion object {

View File

@ -17,6 +17,7 @@ import eu.kanade.tachiyomi.util.preference.preferenceCategory
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
@ -45,11 +46,13 @@ class SettingsGeneralController : SettingsController() {
titleRes = R.string.pref_confirm_exit
defaultValue = false
}
if (!context.isTablet()) {
switchPreference {
key = Keys.hideBottomBar
titleRes = R.string.pref_hide_bottom_bar_on_scroll
defaultValue = true
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
preference {

View File

@ -28,6 +28,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
@ -75,12 +76,14 @@ class SettingsLibraryController : SettingsController() {
}
.launchIn(viewScope)
}
if (!context.isTablet()) {
switchPreference {
key = Keys.jumpToChapters
titleRes = R.string.pref_jump_to_chapters
defaultValue = false
}
}
}
preferenceCategory {
titleRes = R.string.categories

View File

@ -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
}