(cherry picked from commit c740558327f0f40f1b58d04ca5d5baed9285f048) # Conflicts: # app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt # app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt # app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt # app/src/main/java/eu/kanade/tachiyomi/AppModule.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt # app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt
69 lines
2.3 KiB
Kotlin
69 lines
2.3 KiB
Kotlin
package eu.kanade.presentation.library
|
|
|
|
import androidx.compose.runtime.Stable
|
|
import androidx.compose.runtime.derivedStateOf
|
|
import androidx.compose.runtime.getValue
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.setValue
|
|
import eu.kanade.domain.category.model.Category
|
|
import eu.kanade.domain.library.model.LibraryGroup
|
|
import eu.kanade.tachiyomi.data.database.models.LibraryManga
|
|
import eu.kanade.tachiyomi.ui.library.LibraryPresenter
|
|
import exh.source.PERV_EDEN_EN_SOURCE_ID
|
|
import exh.source.PERV_EDEN_IT_SOURCE_ID
|
|
import exh.source.isEhBasedManga
|
|
import exh.source.mangaDexSourceIds
|
|
import exh.source.nHentaiSourceIds
|
|
|
|
@Stable
|
|
interface LibraryState {
|
|
val isLoading: Boolean
|
|
val categories: List<Category>
|
|
var searchQuery: String?
|
|
val selection: List<LibraryManga>
|
|
val selectionMode: Boolean
|
|
var hasActiveFilters: Boolean
|
|
var dialog: LibraryPresenter.Dialog?
|
|
|
|
// SY -->
|
|
val ogCategories: List<Category>
|
|
val groupType: Int
|
|
val showSyncExh: Boolean
|
|
val showCleanTitles: Boolean
|
|
val showAddToMangadex: Boolean
|
|
// SY <--
|
|
}
|
|
|
|
fun LibraryState(): LibraryState {
|
|
return LibraryStateImpl()
|
|
}
|
|
|
|
class LibraryStateImpl : LibraryState {
|
|
override var isLoading: Boolean by mutableStateOf(true)
|
|
override var categories: List<Category> by mutableStateOf(emptyList())
|
|
override var searchQuery: String? by mutableStateOf(null)
|
|
override var selection: List<LibraryManga> by mutableStateOf(emptyList())
|
|
override val selectionMode: Boolean by derivedStateOf { selection.isNotEmpty() }
|
|
override var hasActiveFilters: Boolean by mutableStateOf(false)
|
|
override var dialog: LibraryPresenter.Dialog? by mutableStateOf(null)
|
|
|
|
// SY -->
|
|
override var groupType: Int by mutableStateOf(LibraryGroup.BY_DEFAULT)
|
|
|
|
override var ogCategories: List<Category> by mutableStateOf(emptyList())
|
|
|
|
override var showSyncExh: Boolean by mutableStateOf(true)
|
|
override val showCleanTitles: Boolean by derivedStateOf {
|
|
selection.any {
|
|
it.isEhBasedManga() ||
|
|
it.source in nHentaiSourceIds ||
|
|
it.source == PERV_EDEN_EN_SOURCE_ID ||
|
|
it.source == PERV_EDEN_IT_SOURCE_ID
|
|
}
|
|
}
|
|
override val showAddToMangadex: Boolean by derivedStateOf {
|
|
selection.any { it.source in mangaDexSourceIds }
|
|
}
|
|
// SY <--
|
|
}
|