refactor: Split RecentsPreferences and UiPreferences from PreferencesHelper

This commit is contained in:
ziro 2024-01-29 10:05:16 +07:00
parent 0be92fecbe
commit 7dd56b1976
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
21 changed files with 112 additions and 60 deletions

View file

@ -0,0 +1,18 @@
package dev.yokai.domain.recents
import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.core.preference.getEnum
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.ui.recents.RecentMangaAdapter
class RecentsPreferences(private val preferenceStore: PreferenceStore) {
fun showRecentsDownloads() =
preferenceStore.getEnum(PreferenceKeys.showDLsInRecents, RecentMangaAdapter.ShowRecentsDLs.All)
fun showRecentsRemHistory() = preferenceStore.getBoolean(PreferenceKeys.showRemHistoryInRecents, true)
fun showReadInAllRecents() = preferenceStore.getBoolean(PreferenceKeys.showReadInAllRecents, false)
fun showTitleFirstInRecents() =
preferenceStore.getBoolean(PreferenceKeys.showTitleFirstInRecents, false)
}

View file

@ -0,0 +1,14 @@
package dev.yokai.domain.ui
import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.core.preference.getEnum
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.ui.recents.RecentMangaAdapter
class UiPreferences(private val preferenceStore: PreferenceStore) {
fun recentsViewType() = preferenceStore.getInt("recents_view_type", 0)
fun outlineOnCovers() = preferenceStore.getBoolean(PreferenceKeys.outlineOnCovers, true)
fun uniformGrid() = preferenceStore.getBoolean(PreferenceKeys.uniformGrid, true)
}

View file

@ -264,10 +264,6 @@ class PreferencesHelper(val context: Context, val preferenceStore: PreferenceSto
fun gridSize() = preferenceStore.getFloat(Keys.gridSize, 1f)
fun uniformGrid() = preferenceStore.getBoolean(Keys.uniformGrid, true)
fun outlineOnCovers() = preferenceStore.getBoolean(Keys.outlineOnCovers, true)
fun downloadBadge() = preferenceStore.getBoolean(Keys.downloadBadge, false)
fun languageBadge() = preferenceStore.getBoolean(Keys.languageBadge, false)
@ -361,14 +357,6 @@ class PreferencesHelper(val context: Context, val preferenceStore: PreferenceSto
// TODO: SourcePref
fun extensionUpdatesCount() = preferenceStore.getInt("ext_updates_count", 0)
fun recentsViewType() = preferenceStore.getInt("recents_view_type", 0)
fun showRecentsDownloads() = preferenceStore.getEnum(Keys.showDLsInRecents, RecentMangaAdapter.ShowRecentsDLs.All)
fun showRecentsRemHistory() = preferenceStore.getBoolean(Keys.showRemHistoryInRecents, true)
fun showReadInAllRecents() = preferenceStore.getBoolean(Keys.showReadInAllRecents, false)
fun showUpdatedTime() = preferenceStore.getBoolean(Keys.showUpdatedTime, false)
fun sortFetchedTime() = preferenceStore.getBoolean("sort_fetched_time", false)
@ -379,8 +367,6 @@ class PreferencesHelper(val context: Context, val preferenceStore: PreferenceSto
fun collapseGroupedHistory() = preferenceStore.getBoolean("collapse_group_history", true)
fun showTitleFirstInRecents() = preferenceStore.getBoolean(Keys.showTitleFirstInRecents, false)
fun lastExtCheck() = preferenceStore.getLong("last_ext_check", 0)
fun lastAppCheck() = preferenceStore.getLong("last_app_check", 0)

View file

@ -1,7 +1,9 @@
package eu.kanade.tachiyomi.di
import android.app.Application
import dev.yokai.domain.recents.RecentsPreferences
import dev.yokai.domain.source.SourcePreferences
import dev.yokai.domain.ui.UiPreferences
import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore
import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@ -19,6 +21,10 @@ class PreferenceModule(val application: Application) : InjektModule {
addSingletonFactory { TrackPreferences(get()) }
addSingletonFactory { UiPreferences(get()) }
addSingletonFactory { RecentsPreferences(get()) }
addSingletonFactory {
PreferencesHelper(
context = application,

View file

@ -358,7 +358,7 @@ class ExtensionBottomSheet @JvmOverloads constructor(context: Context, attrs: At
currentSourceTitle = title
val changingAdapters = migAdapter !is MangaAdapter
if (migAdapter !is MangaAdapter) {
migAdapter = MangaAdapter(this, presenter.preferences.outlineOnCovers().get())
migAdapter = MangaAdapter(this, presenter.uiPreferences.outlineOnCovers().get())
migrationFrameLayout?.onBind(migAdapter!!)
migAdapter?.stateRestorationPolicy = RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY
}

View file

@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.library
import android.os.Build
import android.view.HapticFeedbackConstants
import android.view.View
import dev.yokai.domain.ui.UiPreferences
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.R
@ -29,11 +30,12 @@ class LibraryCategoryAdapter(val controller: LibraryController?) :
val sourceManager by injectLazy<SourceManager>()
private val uiPreferences: UiPreferences by injectLazy()
private val preferences: PreferencesHelper by injectLazy()
var showNumber = preferences.categoryNumberOfItems().get()
var showOutline = preferences.outlineOnCovers().get()
var showOutline = uiPreferences.outlineOnCovers().get()
private var lastCategory = ""

View file

@ -51,6 +51,7 @@ import com.bluelinelabs.conductor.ControllerChangeType
import com.github.florent37.viewtooltip.ViewTooltip
import com.google.android.material.snackbar.BaseTransientBottomBar
import com.google.android.material.snackbar.Snackbar
import dev.yokai.domain.ui.UiPreferences
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.SelectableAdapter
import eu.davidea.flexibleadapter.items.IFlexible
@ -138,6 +139,7 @@ import kotlin.random.nextInt
open class LibraryController(
bundle: Bundle? = null,
val uiPreferences: UiPreferences = Injekt.get(),
val preferences: PreferencesHelper = Injekt.get(),
) : BaseCoroutineController<LibraryControllerBinding, LibraryPresenter>(bundle),
ActionMode.Callback,
@ -968,7 +970,7 @@ open class LibraryController(
bottom = 50.dpToPx + (bottomNav?.height ?: 0),
)
}
useStaggered(preferences)
useStaggered(preferences, uiPreferences)
if (libraryLayout == LibraryItem.LAYOUT_LIST) {
spanCount = 1
updatePaddingRelative(
@ -999,7 +1001,7 @@ open class LibraryController(
private fun setPreferenceFlows() {
listOf(
preferences.libraryLayout(),
preferences.uniformGrid(),
uiPreferences.uniformGrid(),
preferences.gridSize(),
preferences.useStaggeredGrid(),
).forEach {
@ -1011,7 +1013,7 @@ open class LibraryController(
.launchIn(viewScope)
}
preferences.hideStartReadingButton().register()
preferences.outlineOnCovers().register { adapter.showOutline = it }
uiPreferences.outlineOnCovers().register { adapter.showOutline = it }
preferences.categoryNumberOfItems().register { adapter.showNumber = it }
}

View file

@ -11,6 +11,7 @@ import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.StaggeredGridLayoutManager
import dev.yokai.domain.ui.UiPreferences
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.AbstractSectionableItem
import eu.davidea.flexibleadapter.items.IFilterable
@ -31,6 +32,7 @@ class LibraryItem(
val manga: LibraryManga,
header: LibraryHeaderItem,
private val context: Context?,
private val uiPreferences: UiPreferences = Injekt.get(),
private val preferences: PreferencesHelper = Injekt.get(),
) : AbstractSectionableItem<LibraryHolder, LibraryHeaderItem>(header), IFilterable<String> {
@ -41,7 +43,7 @@ class LibraryItem(
private val sourceManager: SourceManager by injectLazy()
private val uniformSize: Boolean
get() = preferences.uniformGrid().get()
get() = uiPreferences.uniformGrid().get()
private val libraryLayout: Int
get() = preferences.libraryLayout().get()

View file

@ -26,12 +26,12 @@ class LibraryDisplayView @JvmOverloads constructor(context: Context, attrs: Attr
override fun inflateBinding() = LibraryDisplayLayoutBinding.bind(this)
override fun initGeneralPreferences() {
binding.displayGroup.bindToPreference(preferences.libraryLayout())
binding.uniformGrid.bindToPreference(preferences.uniformGrid()) {
binding.uniformGrid.bindToPreference(uiPreferences.uniformGrid()) {
binding.staggeredGrid.isEnabled = !it
}
binding.outlineOnCovers.bindToPreference(preferences.outlineOnCovers())
binding.outlineOnCovers.bindToPreference(uiPreferences.outlineOnCovers())
binding.staggeredGrid.text = context.getString(R.string.use_staggered_grid).addBetaTag(context)
binding.staggeredGrid.isEnabled = !preferences.uniformGrid().get()
binding.staggeredGrid.isEnabled = !uiPreferences.uniformGrid().get()
binding.staggeredGrid.bindToPreference(preferences.useStaggeredGrid())
binding.gridSeekbar.value = ((preferences.gridSize().get() + .5f) * 2f).roundToInt().toFloat()
binding.resetGridSize.setOnClickListener {

View file

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.ui.migration
import dev.yokai.domain.ui.UiPreferences
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.preference.PreferenceValues
@ -21,6 +22,7 @@ import uy.kohesive.injekt.injectLazy
abstract class BaseMigrationPresenter<T : BaseMigrationInterface>(
protected val sourceManager: SourceManager = Injekt.get(),
protected val db: DatabaseHelper = Injekt.get(),
val uiPreferences: UiPreferences = Injekt.get(),
val preferences: PreferencesHelper = Injekt.get(),
) : BaseCoroutinePresenter<T>() {
private var selectedSource: Pair<String, Long>? = null

View file

@ -139,7 +139,7 @@ class MigrationController :
override fun setMigrationManga(title: String, manga: List<MangaItem>?) {
this.title = title
if (adapter !is MangaAdapter) {
adapter = MangaAdapter(this, presenter.preferences.outlineOnCovers().get())
adapter = MangaAdapter(this, presenter.uiPreferences.outlineOnCovers().get())
binding.migrationRecycler.adapter = adapter
}
adapter?.updateDataSet(manga, true)

View file

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.migration.manga.process
import android.view.MenuItem
import dev.yokai.domain.ui.UiPreferences
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.data.cache.CoverCache
import eu.kanade.tachiyomi.data.database.DatabaseHelper
@ -31,11 +32,12 @@ class MigrationProcessAdapter(
private val db: DatabaseHelper by injectLazy()
var items: List<MigrationProcessItem> = emptyList()
val preferences: PreferencesHelper by injectLazy()
val uiPreferences: UiPreferences by injectLazy()
val sourceManager: SourceManager by injectLazy()
val coverCache: CoverCache by injectLazy()
val customMangaManager: CustomMangaManager by injectLazy()
var showOutline = preferences.outlineOnCovers().get()
var showOutline = uiPreferences.outlineOnCovers().get()
val menuItemListener: MigrationProcessInterface = controller
private val enhancedServices by lazy { Injekt.get<TrackManager>().services.filterIsInstance<EnhancedTrackService>() }

View file

@ -2,6 +2,8 @@ package eu.kanade.tachiyomi.ui.recents
import android.view.View
import androidx.recyclerview.widget.ItemTouchHelper
import dev.yokai.domain.recents.RecentsPreferences
import dev.yokai.domain.ui.UiPreferences
import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.core.preference.Preference
import eu.kanade.tachiyomi.data.database.models.Chapter
@ -23,13 +25,15 @@ class RecentMangaAdapter(val delegate: RecentsInterface) :
BaseChapterAdapter<IFlexible<*>>(delegate) {
val preferences: PreferencesHelper by injectLazy()
val uiPreferences: UiPreferences by injectLazy()
val recentsPreferences: RecentsPreferences by injectLazy()
var showDownloads = preferences.showRecentsDownloads().get()
var showRemoveHistory = preferences.showRecentsRemHistory().get()
var showTitleFirst = preferences.showTitleFirstInRecents().get()
var showDownloads = recentsPreferences.showRecentsDownloads().get()
var showRemoveHistory = recentsPreferences.showRecentsRemHistory().get()
var showTitleFirst = recentsPreferences.showTitleFirstInRecents().get()
var showUpdatedTime = preferences.showUpdatedTime().get()
var uniformCovers = preferences.uniformGrid().get()
var showOutline = preferences.outlineOnCovers().get()
var uniformCovers = uiPreferences.uniformGrid().get()
var showOutline = uiPreferences.outlineOnCovers().get()
var sortByFetched = preferences.sortFetchedTime().get()
var lastUpdatedTime = preferences.libraryUpdateLastTimestamp().get()
private var collapseGroupedUpdates = preferences.collapseGroupedUpdates().get()
@ -56,15 +60,15 @@ class RecentMangaAdapter(val delegate: RecentsInterface) :
}
fun setPreferenceFlows() {
preferences.showRecentsDownloads().register { showDownloads = it }
preferences.showRecentsRemHistory().register { showRemoveHistory = it }
preferences.showTitleFirstInRecents().register { showTitleFirst = it }
recentsPreferences.showRecentsDownloads().register { showDownloads = it }
recentsPreferences.showRecentsRemHistory().register { showRemoveHistory = it }
recentsPreferences.showTitleFirstInRecents().register { showTitleFirst = it }
preferences.showUpdatedTime().register { showUpdatedTime = it }
preferences.uniformGrid().register { uniformCovers = it }
uiPreferences.uniformGrid().register { uniformCovers = it }
preferences.collapseGroupedUpdates().register { collapseGroupedUpdates = it }
preferences.collapseGroupedHistory().register { collapseGroupedHistory = it }
preferences.sortFetchedTime().changesIn(delegate.scope()) { sortByFetched = it }
preferences.outlineOnCovers().register(false) {
uiPreferences.outlineOnCovers().register(false) {
showOutline = it
(0 until itemCount).forEach { i ->
(recyclerView.findViewHolderForAdapterPosition(i) as? RecentMangaHolder)?.updateCards()

View file

@ -486,7 +486,7 @@ class RecentsController(bundle: Bundle? = null) :
override fun canStillGoBack(): Boolean {
return showingDownloads ||
presenter.preferences.recentsViewType().get() != presenter.viewType.mainValue
presenter.uiPreferences.recentsViewType().get() != presenter.viewType.mainValue
}
override fun handleOnBackStarted(backEvent: BackEventCompat) {
@ -516,7 +516,7 @@ class RecentsController(bundle: Bundle? = null) :
binding.downloadBottomSheet.dlBottomSheet.dismiss()
return true
}
val viewType = RecentsViewType.valueOf(presenter.preferences.recentsViewType().get())
val viewType = RecentsViewType.valueOf(presenter.uiPreferences.recentsViewType().get())
if (viewType != presenter.viewType) {
tempJumpTo(viewType)
return true

View file

@ -1,5 +1,7 @@
package eu.kanade.tachiyomi.ui.recents
import dev.yokai.domain.recents.RecentsPreferences
import dev.yokai.domain.ui.UiPreferences
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Chapter
@ -43,6 +45,8 @@ import kotlin.math.abs
import kotlin.math.roundToInt
class RecentsPresenter(
val uiPreferences: UiPreferences = Injekt.get(),
val recentsPreferences: RecentsPreferences = Injekt.get(),
val preferences: PreferencesHelper = Injekt.get(),
val downloadManager: DownloadManager = Injekt.get(),
val db: DatabaseHelper = Injekt.get(),
@ -63,7 +67,7 @@ class RecentsPresenter(
RecentMangaHeaderItem(RecentMangaHeaderItem.CONTINUE_READING)
var finished = false
private var shouldMoveToTop = false
var viewType: RecentsViewType = RecentsViewType.valueOf(preferences.recentsViewType().get())
var viewType: RecentsViewType = RecentsViewType.valueOf(uiPreferences.recentsViewType().get())
private set
var groupHistory: GroupType = preferences.groupChaptersHistory().get()
private set
@ -98,7 +102,7 @@ class RecentsPresenter(
getRecents()
listOf(
preferences.groupChaptersHistory(),
preferences.showReadInAllRecents(),
recentsPreferences.showReadInAllRecents(),
preferences.sortFetchedTime(),
).forEach {
it.changes()
@ -152,7 +156,7 @@ class RecentsPresenter(
}
val viewType = customViewType ?: viewType
val showRead = ((preferences.showReadInAllRecents().get() || query.isNotEmpty()) && limit != 0) || includeReadAnyway
val showRead = ((recentsPreferences.showReadInAllRecents().get() || query.isNotEmpty()) && limit != 0) || includeReadAnyway
val isUngrouped = viewType != RecentsViewType.GroupedAll || query.isNotEmpty()
val groupChaptersHistory = preferences.groupChaptersHistory().get()
groupHistory = groupChaptersHistory
@ -469,7 +473,7 @@ class RecentsPresenter(
fun toggleGroupRecents(pref: RecentsViewType, updatePref: Boolean = true) {
if (updatePref) {
preferences.recentsViewType().set(pref.mainValue)
uiPreferences.recentsViewType().set(pref.mainValue)
}
viewType = pref
resetOffsets()

View file

@ -19,11 +19,11 @@ class RecentsGeneralView @JvmOverloads constructor(context: Context, attrs: Attr
.withSubtitle(binding.showRemoveHistory.context, R.string.press_and_hold_to_also_reset)
binding.uniformCovers.text = uniformText
.withSubtitle(binding.uniformCovers.context, R.string.affects_library_grid)
binding.showRecentsDownload.bindToPreference(preferences.showRecentsDownloads())
binding.showRemoveHistory.bindToPreference(preferences.showRecentsRemHistory())
binding.showReadInAll.bindToPreference(preferences.showReadInAllRecents())
binding.showTitleFirst.bindToPreference(preferences.showTitleFirstInRecents())
binding.uniformCovers.bindToPreference(preferences.uniformGrid())
binding.outlineOnCovers.bindToPreference(preferences.outlineOnCovers())
binding.showRecentsDownload.bindToPreference(recentsPreferences.showRecentsDownloads())
binding.showRemoveHistory.bindToPreference(recentsPreferences.showRecentsRemHistory())
binding.showReadInAll.bindToPreference(recentsPreferences.showReadInAllRecents())
binding.showTitleFirst.bindToPreference(recentsPreferences.showTitleFirstInRecents())
binding.uniformCovers.bindToPreference(uiPreferences.uniformGrid())
binding.outlineOnCovers.bindToPreference(uiPreferences.outlineOnCovers())
}
}

View file

@ -206,7 +206,7 @@ open class BrowseSourceController(bundle: Bundle) :
binding.catalogueView.removeView(oldRecycler)
}
val recycler = if (presenter.prefs.browseAsList().get()) {
val recycler = if (presenter.preferences.browseAsList().get()) {
RecyclerView(view.context).apply {
id = R.id.recycler
layoutManager = LinearLayoutManagerAccurateOffset(context)
@ -320,7 +320,7 @@ open class BrowseSourceController(bundle: Bundle) :
private fun updateDisplayMenuItem(menu: Menu?, isListMode: Boolean? = null) {
menu?.findItem(R.id.action_display_mode)?.apply {
val icon = if (isListMode ?: presenter.prefs.browseAsList().get()) {
val icon = if (isListMode ?: presenter.preferences.browseAsList().get()) {
R.drawable.ic_view_module_24dp
} else {
R.drawable.ic_view_list_24dp
@ -663,8 +663,8 @@ open class BrowseSourceController(bundle: Bundle) :
val view = view ?: return
val adapter = adapter ?: return
val isListMode = !presenter.prefs.browseAsList().get()
presenter.prefs.browseAsList().set(isListMode)
val isListMode = !presenter.preferences.browseAsList().get()
presenter.preferences.browseAsList().set(isListMode)
listOf(activityBinding?.toolbar?.menu, activityBinding?.searchToolbar?.menu).forEach {
updateDisplayMenuItem(it, isListMode)
}

View file

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.ui.source.browse
import dev.yokai.domain.ui.UiPreferences
import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.data.cache.CoverCache
import eu.kanade.tachiyomi.data.database.DatabaseHelper
@ -48,7 +49,8 @@ open class BrowseSourcePresenter(
var useLatest: Boolean = false,
val sourceManager: SourceManager = Injekt.get(),
val db: DatabaseHelper = Injekt.get(),
val prefs: PreferencesHelper = Injekt.get(),
val uiPreferences: UiPreferences = Injekt.get(),
val preferences: PreferencesHelper = Injekt.get(),
private val coverCache: CoverCache = Injekt.get(),
) : BaseCoroutinePresenter<BrowseSourceController>() {
@ -159,9 +161,9 @@ open class BrowseSourcePresenter(
val sourceId = source.id
val browseAsList = prefs.browseAsList()
val sourceListType = prefs.libraryLayout()
val outlineCovers = prefs.outlineOnCovers()
val browseAsList = preferences.browseAsList()
val sourceListType = preferences.libraryLayout()
val outlineCovers = uiPreferences.outlineOnCovers()
items.clear()
// Prepare the pager.
@ -171,7 +173,7 @@ open class BrowseSourcePresenter(
try {
val mangas = second
.map { networkToLocalManga(it, sourceId) }
.filter { !prefs.hideInLibraryItems().get() || !it.favorite }
.filter { !preferences.hideInLibraryItems().get() || !it.favorite }
if (mangas.isEmpty() && page == 1) {
withUIContext { view?.onAddPageError(NoResultsException()) }
return@onEach

View file

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.ui.source.globalsearch
import dev.yokai.domain.ui.UiPreferences
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@ -17,8 +18,9 @@ class GlobalSearchCardAdapter(controller: GlobalSearchController) :
* Listen for browse item clicks.
*/
val mangaClickListener: OnMangaClickListener = controller
private val uiPreferences: UiPreferences by injectLazy()
private val preferences: PreferencesHelper by injectLazy()
val showOutlines = preferences.outlineOnCovers().get()
val showOutlines = uiPreferences.outlineOnCovers().get()
/**
* Listener which should be called when user clicks browse.

View file

@ -9,6 +9,7 @@ import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.StaggeredGridLayoutManager
import dev.yokai.domain.ui.UiPreferences
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.library.LibraryItem
import eu.kanade.tachiyomi.util.system.dpToPx
@ -85,10 +86,10 @@ class AutofitRecyclerView @JvmOverloads constructor(context: Context, attrs: Att
lastMeasuredWidth = width
}
fun useStaggered(preferences: PreferencesHelper) {
fun useStaggered(preferences: PreferencesHelper, uiPreferences: UiPreferences) {
useStaggered(
preferences.useStaggeredGrid().get() &&
!preferences.uniformGrid().get() &&
!uiPreferences.uniformGrid().get() &&
preferences.libraryLayout().get() != LibraryItem.LAYOUT_LIST,
)
}

View file

@ -4,6 +4,8 @@ import android.content.Context
import android.util.AttributeSet
import androidx.core.widget.NestedScrollView
import androidx.viewbinding.ViewBinding
import dev.yokai.domain.recents.RecentsPreferences
import dev.yokai.domain.ui.UiPreferences
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.library.LibraryController
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
@ -19,7 +21,8 @@ abstract class BaseTabbedScrollView<VB : ViewBinding> @JvmOverloads constructor(
init {
clipToPadding = false
}
internal val preferences by injectLazy<PreferencesHelper>()
internal val preferences: PreferencesHelper by injectLazy()
internal val uiPreferences: UiPreferences by injectLazy()
abstract fun initGeneralPreferences()
abstract fun inflateBinding(): VB
@ -35,6 +38,8 @@ abstract class BaseTabbedScrollView<VB : ViewBinding> @JvmOverloads constructor(
abstract class BaseRecentsDisplayView<VB : ViewBinding> @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
BaseTabbedScrollView<VB>(context, attrs) {
var controller: RecentsController? = null
internal val recentsPreferences: RecentsPreferences by injectLazy()
}
abstract class BaseLibraryDisplayView<VB : ViewBinding> @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :