Replace preference getter functions with properties (#3091)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt
#	app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt
#	app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt
#	app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
#	app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt
#	app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
#	app/src/main/java/eu/kanade/tachiyomi/di/PreferenceModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt
#	app/src/main/java/mihon/feature/migration/list/MigrationListScreenModel.kt
#	core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt
#	domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt
This commit is contained in:
AntsyLich
2026-03-20 14:57:01 +06:00
committed by Jobobby04
parent 1c8e6dcd6f
commit af51607053
204 changed files with 1300 additions and 1203 deletions
@@ -8,52 +8,52 @@ class ExhPreferences(
) {
// SY -->
fun isHentaiEnabled() = preferenceStore.getBoolean("eh_is_hentai_enabled", true)
val isHentaiEnabled: Preference<Boolean> = preferenceStore.getBoolean("eh_is_hentai_enabled", true)
fun enableExhentai() = preferenceStore.getBoolean(Preference.Companion.privateKey("enable_exhentai"), false)
val enableExhentai: Preference<Boolean> = preferenceStore.getBoolean(Preference.Companion.privateKey("enable_exhentai"), false)
fun imageQuality() = preferenceStore.getString("ehentai_quality", "auto")
val imageQuality: Preference<String> = preferenceStore.getString("ehentai_quality", "auto")
fun useHentaiAtHome() = preferenceStore.getInt("eh_enable_hah", 0)
val useHentaiAtHome: Preference<Int> = preferenceStore.getInt("eh_enable_hah", 0)
fun useJapaneseTitle() = preferenceStore.getBoolean("use_jp_title", false)
val useJapaneseTitle: Preference<Boolean> = preferenceStore.getBoolean("use_jp_title", false)
fun exhUseOriginalImages() = preferenceStore.getBoolean("eh_useOrigImages", false)
val exhUseOriginalImages: Preference<Boolean> = preferenceStore.getBoolean("eh_useOrigImages", false)
fun ehTagFilterValue() = preferenceStore.getInt("eh_tag_filtering_value", 0)
val ehTagFilterValue: Preference<Int> = preferenceStore.getInt("eh_tag_filtering_value", 0)
fun ehTagWatchingValue() = preferenceStore.getInt("eh_tag_watching_value", 0)
val ehTagWatchingValue: Preference<Int> = preferenceStore.getInt("eh_tag_watching_value", 0)
// EH Cookies
fun memberIdVal() = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_member_id"), "")
val memberIdVal: Preference<String> = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_member_id"), "")
fun passHashVal() = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_pass_hash"), "")
fun igneousVal() = preferenceStore.getString(Preference.Companion.privateKey("eh_igneous"), "")
fun ehSettingsProfile() = preferenceStore.getInt(Preference.Companion.privateKey("eh_ehSettingsProfile"), -1)
fun exhSettingsProfile() = preferenceStore.getInt(Preference.Companion.privateKey("eh_exhSettingsProfile"), -1)
fun exhSettingsKey() = preferenceStore.getString(Preference.Companion.privateKey("eh_settingsKey"), "")
fun exhSessionCookie() = preferenceStore.getString(Preference.Companion.privateKey("eh_sessionCookie"), "")
fun exhHathPerksCookies() = preferenceStore.getString(Preference.Companion.privateKey("eh_hathPerksCookie"), "")
val passHashVal: Preference<String> = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_pass_hash"), "")
val igneousVal: Preference<String> = preferenceStore.getString(Preference.Companion.privateKey("eh_igneous"), "")
val ehSettingsProfile: Preference<Int> = preferenceStore.getInt(Preference.Companion.privateKey("eh_ehSettingsProfile"), -1)
val exhSettingsProfile: Preference<Int> = preferenceStore.getInt(Preference.Companion.privateKey("eh_exhSettingsProfile"), -1)
val exhSettingsKey: Preference<String> = preferenceStore.getString(Preference.Companion.privateKey("eh_settingsKey"), "")
val exhSessionCookie: Preference<String> = preferenceStore.getString(Preference.Companion.privateKey("eh_sessionCookie"), "")
val exhHathPerksCookies: Preference<String> = preferenceStore.getString(Preference.Companion.privateKey("eh_hathPerksCookie"), "")
fun exhShowSyncIntro() = preferenceStore.getBoolean("eh_show_sync_intro", true)
val exhShowSyncIntro: Preference<Boolean> = preferenceStore.getBoolean("eh_show_sync_intro", true)
fun exhReadOnlySync() = preferenceStore.getBoolean("eh_sync_read_only", false)
val exhReadOnlySync: Preference<Boolean> = preferenceStore.getBoolean("eh_sync_read_only", false)
fun exhLenientSync() = preferenceStore.getBoolean("eh_lenient_sync", false)
val exhLenientSync: Preference<Boolean> = preferenceStore.getBoolean("eh_lenient_sync", false)
fun exhShowSettingsUploadWarning() = preferenceStore.getBoolean("eh_showSettingsUploadWarning2", true)
val exhShowSettingsUploadWarning: Preference<Boolean> = preferenceStore.getBoolean("eh_showSettingsUploadWarning2", true)
fun logLevel() = preferenceStore.getInt("eh_log_level", 0)
val logLevel: Preference<Int> = preferenceStore.getInt("eh_log_level", 0)
fun exhAutoUpdateFrequency() = preferenceStore.getInt("eh_auto_update_frequency", 1)
val exhAutoUpdateFrequency: Preference<Int> = preferenceStore.getInt("eh_auto_update_frequency", 1)
fun exhAutoUpdateRequirements() = preferenceStore.getStringSet("eh_auto_update_restrictions", emptySet())
val exhAutoUpdateRequirements: Preference<Set<String>> = preferenceStore.getStringSet("eh_auto_update_restrictions", emptySet())
fun exhAutoUpdateStats() = preferenceStore.getString(Preference.Companion.appStateKey("eh_auto_update_stats"), "")
val exhAutoUpdateStats: Preference<String> = preferenceStore.getString(Preference.Companion.appStateKey("eh_auto_update_stats"), "")
fun exhWatchedListDefaultState() = preferenceStore.getBoolean("eh_watched_list_default_state", false)
val exhWatchedListDefaultState: Preference<Boolean> = preferenceStore.getBoolean("eh_watched_list_default_state", false)
fun exhSettingsLanguages() = preferenceStore.getString(
val exhSettingsLanguages: Preference<String> = preferenceStore.getString(
"eh_settings_languages",
"false*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\n" +
"false*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\nfalse*false*false\n" +
@@ -61,10 +61,10 @@ class ExhPreferences(
"false*false*false\nfalse*false*false",
)
fun exhEnabledCategories() = preferenceStore.getString(
val exhEnabledCategories: Preference<String> = preferenceStore.getString(
"eh_enabled_categories",
"false,false,false,false,false,false,false,false,false,false",
)
fun enhancedEHentaiView() = preferenceStore.getBoolean("enhanced_e_hentai_view", true)
val enhancedEHentaiView: Preference<Boolean> = preferenceStore.getBoolean("enhanced_e_hentai_view", true)
}
@@ -32,13 +32,13 @@ class FilterChaptersForDownload(
suspend fun await(manga: Manga, newChapters: List<Chapter>): List<Chapter> {
if (
newChapters.isEmpty() ||
!downloadPreferences.downloadNewChapters().get() ||
!downloadPreferences.downloadNewChapters.get() ||
!manga.shouldDownloadNewChapters()
) {
return emptyList()
}
if (!downloadPreferences.downloadNewUnreadChaptersOnly().get()) return newChapters
if (!downloadPreferences.downloadNewUnreadChaptersOnly.get()) return newChapters
// SY -->
val existingChapters = if (manga.source == MERGED_SOURCE_ID) {
@@ -67,8 +67,8 @@ class FilterChaptersForDownload(
if (!favorite) return false
val categories = getCategories.await(id).map { it.id }.ifEmpty { listOf(DEFAULT_CATEGORY_ID) }
val includedCategories = downloadPreferences.downloadNewChapterCategories().get().map { it.toLong() }
val excludedCategories = downloadPreferences.downloadNewChapterCategoriesExclude().get().map { it.toLong() }
val includedCategories = downloadPreferences.downloadNewChapterCategories.get().map { it.toLong() }
val excludedCategories = downloadPreferences.downloadNewChapterCategoriesExclude.get().map { it.toLong() }
return when {
// Default Download from all categories
@@ -4,10 +4,13 @@ import tachiyomi.core.common.preference.Preference
import tachiyomi.core.common.preference.PreferenceStore
class BackupPreferences(
private val preferenceStore: PreferenceStore,
preferenceStore: PreferenceStore,
) {
fun backupInterval() = preferenceStore.getInt("backup_interval", 12)
val backupInterval: Preference<Int> = preferenceStore.getInt("backup_interval", 12)
fun lastAutoBackupTimestamp() = preferenceStore.getLong(Preference.appStateKey("last_auto_backup_timestamp"), 0L)
val lastAutoBackupTimestamp: Preference<Long> = preferenceStore.getLong(
Preference.appStateKey("last_auto_backup_timestamp"),
0L,
)
}
@@ -14,7 +14,7 @@ class CreateCategoryWithName(
private val initialFlags: Long
get() {
val sort = preferences.sortingMode().get()
val sort = preferences.sortingMode.get()
return sort.type.flag or sort.direction.flag
}
@@ -30,17 +30,17 @@ class DeleteCategory(
)
}
val defaultCategory = libraryPreferences.defaultCategory().get()
val defaultCategory = libraryPreferences.defaultCategory.get()
if (defaultCategory == categoryId.toInt()) {
libraryPreferences.defaultCategory().delete()
libraryPreferences.defaultCategory.delete()
}
val categoryPreferences = listOf(
libraryPreferences.updateCategories(),
libraryPreferences.updateCategoriesExclude(),
downloadPreferences.removeExcludeCategories(),
downloadPreferences.downloadNewChapterCategories(),
downloadPreferences.downloadNewChapterCategoriesExclude(),
libraryPreferences.updateCategories,
libraryPreferences.updateCategoriesExclude,
downloadPreferences.removeExcludeCategories,
downloadPreferences.downloadNewChapterCategories,
downloadPreferences.downloadNewChapterCategoriesExclude,
)
val categoryIdString = categoryId.toString()
categoryPreferences.forEach { preference ->
@@ -10,7 +10,7 @@ class ResetCategoryFlags(
) {
suspend fun await() {
val sort = preferences.sortingMode().get()
val sort = preferences.sortingMode.get()
categoryRepository.updateAllFlags(sort.type + sort.direction)
}
}
@@ -8,6 +8,6 @@ class SetDisplayMode(
) {
fun await(display: LibraryDisplayMode) {
preferences.displayMode().set(display)
preferences.displayMode.set(display)
}
}
@@ -16,17 +16,17 @@ class SetSortModeForCategory(
suspend fun await(categoryId: Long?, type: LibrarySort.Type, direction: LibrarySort.Direction) {
// SY -->
if (preferences.groupLibraryBy().get() != LibraryGroup.BY_DEFAULT) {
preferences.sortingMode().set(LibrarySort(type, direction))
if (preferences.groupLibraryBy.get() != LibraryGroup.BY_DEFAULT) {
preferences.sortingMode.set(LibrarySort(type, direction))
return
}
// SY <--
val category = categoryId?.let { categoryRepository.get(it) }
val flags = (category?.flags ?: 0) + type + direction
if (type == LibrarySort.Type.Random) {
preferences.randomSortSeed().set(Random.nextInt())
preferences.randomSortSeed.set(Random.nextInt())
}
if (category != null && preferences.categorizedDisplaySettings().get()) {
if (category != null && preferences.categorizedDisplaySettings.get()) {
categoryRepository.updatePartial(
CategoryUpdate(
id = category.id,
@@ -34,7 +34,7 @@ class SetSortModeForCategory(
),
)
} else {
preferences.sortingMode().set(LibrarySort(type, direction))
preferences.sortingMode.set(LibrarySort(type, direction))
categoryRepository.updateAllFlags(flags)
}
}
@@ -17,12 +17,12 @@ class SetMangaDefaultChapterFlags(
with(libraryPreferences) {
setMangaChapterFlags.awaitSetAllFlags(
mangaId = manga.id,
unreadFilter = filterChapterByRead().get(),
downloadedFilter = filterChapterByDownloaded().get(),
bookmarkedFilter = filterChapterByBookmarked().get(),
sortingMode = sortChapterBySourceOrNumber().get(),
sortingDirection = sortChapterByAscendingOrDescending().get(),
displayMode = displayChapterByNameOrNumber().get(),
unreadFilter = filterChapterByRead.get(),
downloadedFilter = filterChapterByDownloaded.get(),
bookmarkedFilter = filterChapterByBookmarked.get(),
sortingMode = sortChapterBySourceOrNumber.get(),
sortingDirection = sortChapterByAscendingOrDescending.get(),
displayMode = displayChapterByNameOrNumber.get(),
)
}
}
@@ -1,47 +1,61 @@
package tachiyomi.domain.download.service
import tachiyomi.core.common.preference.Preference
import tachiyomi.core.common.preference.PreferenceStore
class DownloadPreferences(
private val preferenceStore: PreferenceStore,
preferenceStore: PreferenceStore,
) {
fun downloadOnlyOverWifi() = preferenceStore.getBoolean(
val downloadOnlyOverWifi: Preference<Boolean> = preferenceStore.getBoolean(
"pref_download_only_over_wifi_key",
true,
)
fun saveChaptersAsCBZ() = preferenceStore.getBoolean("save_chapter_as_cbz", true)
val saveChaptersAsCBZ: Preference<Boolean> = preferenceStore.getBoolean("save_chapter_as_cbz", true)
fun splitTallImages() = preferenceStore.getBoolean("split_tall_images", true)
val splitTallImages: Preference<Boolean> = preferenceStore.getBoolean("split_tall_images", true)
fun autoDownloadWhileReading() = preferenceStore.getInt("auto_download_while_reading", 0)
val autoDownloadWhileReading: Preference<Int> = preferenceStore.getInt("auto_download_while_reading", 0)
fun removeAfterReadSlots() = preferenceStore.getInt("remove_after_read_slots", -1)
val removeAfterReadSlots: Preference<Int> = preferenceStore.getInt("remove_after_read_slots", -1)
fun removeAfterMarkedAsRead() = preferenceStore.getBoolean(
val removeAfterMarkedAsRead: Preference<Boolean> = preferenceStore.getBoolean(
"pref_remove_after_marked_as_read_key",
false,
)
fun removeBookmarkedChapters() = preferenceStore.getBoolean("pref_remove_bookmarked", false)
val removeBookmarkedChapters: Preference<Boolean> = preferenceStore.getBoolean("pref_remove_bookmarked", false)
fun removeExcludeCategories() = preferenceStore.getStringSet(REMOVE_EXCLUDE_CATEGORIES_PREF_KEY, emptySet())
val removeExcludeCategories: Preference<Set<String>> = preferenceStore.getStringSet(
REMOVE_EXCLUDE_CATEGORIES_PREF_KEY,
emptySet(),
)
fun downloadNewChapters() = preferenceStore.getBoolean("download_new", false)
val downloadNewChapters: Preference<Boolean> = preferenceStore.getBoolean("download_new", false)
fun downloadNewChapterCategories() = preferenceStore.getStringSet(DOWNLOAD_NEW_CATEGORIES_PREF_KEY, emptySet())
val downloadNewChapterCategories: Preference<Set<String>> = preferenceStore.getStringSet(
DOWNLOAD_NEW_CATEGORIES_PREF_KEY,
emptySet(),
)
fun downloadNewChapterCategoriesExclude() =
preferenceStore.getStringSet(DOWNLOAD_NEW_CATEGORIES_EXCLUDE_PREF_KEY, emptySet())
val downloadNewChapterCategoriesExclude: Preference<Set<String>> = preferenceStore.getStringSet(
DOWNLOAD_NEW_CATEGORIES_EXCLUDE_PREF_KEY,
emptySet(),
)
fun downloadNewUnreadChaptersOnly() = preferenceStore.getBoolean("download_new_unread_chapters_only", false)
val downloadNewUnreadChaptersOnly: Preference<Boolean> = preferenceStore.getBoolean(
"download_new_unread_chapters_only",
false,
)
fun parallelSourceLimit() = preferenceStore.getInt("download_parallel_source_limit", 5)
val parallelSourceLimit: Preference<Int> = preferenceStore.getInt("download_parallel_source_limit", 5)
fun parallelPageLimit() = preferenceStore.getInt("download_parallel_page_limit", 5)
val parallelPageLimit: Preference<Int> = preferenceStore.getInt("download_parallel_page_limit", 5)
fun includeChapterUrlHash() = preferenceStore.getBoolean("download_include_chapter_url_hash", true)
// SY -->
val includeChapterUrlHash: Preference<Boolean> = preferenceStore.getBoolean("download_include_chapter_url_hash", true)
// SY <--
companion object {
private const val REMOVE_EXCLUDE_CATEGORIES_PREF_KEY = "remove_exclude_categories"
@@ -14,36 +14,39 @@ class LibraryPreferences(
private val preferenceStore: PreferenceStore,
) {
fun displayMode() = preferenceStore.getObjectFromString(
val displayMode: Preference<LibraryDisplayMode> = preferenceStore.getObjectFromString(
"pref_display_mode_library",
LibraryDisplayMode.default,
LibraryDisplayMode.Serializer::serialize,
LibraryDisplayMode.Serializer::deserialize,
)
fun sortingMode() = preferenceStore.getObjectFromString(
val sortingMode: Preference<LibrarySort> = preferenceStore.getObjectFromString(
"library_sorting_mode",
LibrarySort.default,
LibrarySort.Serializer::serialize,
LibrarySort.Serializer::deserialize,
)
fun randomSortSeed() = preferenceStore.getInt("library_random_sort_seed", 0)
val randomSortSeed: Preference<Int> = preferenceStore.getInt("library_random_sort_seed", 0)
fun portraitColumns() = preferenceStore.getInt("pref_library_columns_portrait_key", 0)
val portraitColumns: Preference<Int> = preferenceStore.getInt("pref_library_columns_portrait_key", 0)
fun landscapeColumns() = preferenceStore.getInt("pref_library_columns_landscape_key", 0)
val landscapeColumns: Preference<Int> = preferenceStore.getInt("pref_library_columns_landscape_key", 0)
fun lastUpdatedTimestamp() = preferenceStore.getLong(Preference.appStateKey("library_update_last_timestamp"), 0L)
fun autoUpdateInterval() = preferenceStore.getInt("pref_library_update_interval_key", 0)
val lastUpdatedTimestamp: Preference<Long> = preferenceStore.getLong(
Preference.appStateKey("library_update_last_timestamp"),
0L,
)
val autoUpdateInterval: Preference<Int> = preferenceStore.getInt("pref_library_update_interval_key", 0)
fun autoUpdateDeviceRestrictions() = preferenceStore.getStringSet(
val autoUpdateDeviceRestrictions: Preference<Set<String>> = preferenceStore.getStringSet(
"library_update_restriction",
setOf(
DEVICE_ONLY_ON_WIFI,
),
)
fun autoUpdateMangaRestrictions() = preferenceStore.getStringSet(
val autoUpdateMangaRestrictions: Preference<Set<String>> = preferenceStore.getStringSet(
"library_update_manga_restriction",
setOf(
MANGA_HAS_UNREAD,
@@ -53,52 +56,55 @@ class LibraryPreferences(
),
)
fun autoUpdateMetadata() = preferenceStore.getBoolean("auto_update_metadata", false)
val autoUpdateMetadata: Preference<Boolean> = preferenceStore.getBoolean("auto_update_metadata", false)
fun showContinueReadingButton() = preferenceStore.getBoolean(
val showContinueReadingButton: Preference<Boolean> = preferenceStore.getBoolean(
"display_continue_reading_button",
false,
)
fun markDuplicateReadChapterAsRead() = preferenceStore.getStringSet("mark_duplicate_read_chapter_read", emptySet())
val markDuplicateReadChapterAsRead: Preference<Set<String>> = preferenceStore.getStringSet(
"mark_duplicate_read_chapter_read",
emptySet(),
)
// region Filter
fun filterDownloaded() = preferenceStore.getEnum(
val filterDownloaded: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_library_downloaded_v2",
TriState.DISABLED,
)
fun filterUnread() = preferenceStore.getEnum("pref_filter_library_unread_v2", TriState.DISABLED)
val filterUnread: Preference<TriState> = preferenceStore.getEnum("pref_filter_library_unread_v2", TriState.DISABLED)
fun filterStarted() = preferenceStore.getEnum(
val filterStarted: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_library_started_v2",
TriState.DISABLED,
)
fun filterBookmarked() = preferenceStore.getEnum(
val filterBookmarked: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_library_bookmarked_v2",
TriState.DISABLED,
)
fun filterCompleted() = preferenceStore.getEnum(
val filterCompleted: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_library_completed_v2",
TriState.DISABLED,
)
fun filterIntervalCustom() = preferenceStore.getEnum(
val filterIntervalCustom: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_library_interval_custom",
TriState.DISABLED,
)
// SY -->
fun filterLewd() = preferenceStore.getEnum(
val filterLewd: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_library_lewd_v2",
TriState.DISABLED,
)
// SY <--
fun filterTracking(id: Int) = preferenceStore.getEnum(
fun filterTracking(id: Int): Preference<TriState> = preferenceStore.getEnum(
"pref_filter_library_tracked_${id}_v2",
TriState.DISABLED,
)
@@ -107,100 +113,112 @@ class LibraryPreferences(
// region Badges
fun downloadBadge() = preferenceStore.getBoolean("display_download_badge", false)
val downloadBadge: Preference<Boolean> = preferenceStore.getBoolean("display_download_badge", false)
fun unreadBadge() = preferenceStore.getBoolean("display_unread_badge", true)
val unreadBadge: Preference<Boolean> = preferenceStore.getBoolean("display_unread_badge", true)
fun localBadge() = preferenceStore.getBoolean("display_local_badge", true)
val localBadge: Preference<Boolean> = preferenceStore.getBoolean("display_local_badge", true)
fun languageBadge() = preferenceStore.getBoolean("display_language_badge", false)
val languageBadge: Preference<Boolean> = preferenceStore.getBoolean("display_language_badge", false)
fun newShowUpdatesCount() = preferenceStore.getBoolean("library_show_updates_count", true)
fun newUpdatesCount() = preferenceStore.getInt(Preference.appStateKey("library_unseen_updates_count"), 0)
val newShowUpdatesCount: Preference<Boolean> = preferenceStore.getBoolean("library_show_updates_count", true)
val newUpdatesCount: Preference<Int> = preferenceStore.getInt(
Preference.appStateKey("library_unseen_updates_count"),
0,
)
// endregion
// region Category
fun defaultCategory() = preferenceStore.getInt(DEFAULT_CATEGORY_PREF_KEY, -1)
val defaultCategory: Preference<Int> = preferenceStore.getInt(DEFAULT_CATEGORY_PREF_KEY, -1)
fun lastUsedCategory() = preferenceStore.getInt(Preference.appStateKey("last_used_category"), 0)
val lastUsedCategory: Preference<Int> = preferenceStore.getInt(Preference.appStateKey("last_used_category"), 0)
fun categoryTabs() = preferenceStore.getBoolean("display_category_tabs", true)
val categoryTabs: Preference<Boolean> = preferenceStore.getBoolean("display_category_tabs", true)
fun categoryNumberOfItems() = preferenceStore.getBoolean("display_number_of_items", false)
val categoryNumberOfItems: Preference<Boolean> = preferenceStore.getBoolean("display_number_of_items", false)
fun categorizedDisplaySettings() = preferenceStore.getBoolean("categorized_display", false)
val categorizedDisplaySettings: Preference<Boolean> = preferenceStore.getBoolean("categorized_display", false)
fun updateCategories() = preferenceStore.getStringSet(LIBRARY_UPDATE_CATEGORIES_PREF_KEY, emptySet())
val updateCategories: Preference<Set<String>> = preferenceStore.getStringSet(
LIBRARY_UPDATE_CATEGORIES_PREF_KEY,
emptySet(),
)
fun updateCategoriesExclude() = preferenceStore.getStringSet(LIBRARY_UPDATE_CATEGORIES_EXCLUDE_PREF_KEY, emptySet())
val updateCategoriesExclude: Preference<Set<String>> = preferenceStore.getStringSet(
LIBRARY_UPDATE_CATEGORIES_EXCLUDE_PREF_KEY,
emptySet(),
)
// endregion
// region Chapter
fun filterChapterByRead() = preferenceStore.getLong(
val filterChapterByRead: Preference<Long> = preferenceStore.getLong(
"default_chapter_filter_by_read",
Manga.SHOW_ALL,
)
fun filterChapterByDownloaded() = preferenceStore.getLong(
val filterChapterByDownloaded: Preference<Long> = preferenceStore.getLong(
"default_chapter_filter_by_downloaded",
Manga.SHOW_ALL,
)
fun filterChapterByBookmarked() = preferenceStore.getLong(
val filterChapterByBookmarked: Preference<Long> = preferenceStore.getLong(
"default_chapter_filter_by_bookmarked",
Manga.SHOW_ALL,
)
// and upload date
fun sortChapterBySourceOrNumber() = preferenceStore.getLong(
val sortChapterBySourceOrNumber: Preference<Long> = preferenceStore.getLong(
"default_chapter_sort_by_source_or_number",
Manga.CHAPTER_SORTING_SOURCE,
)
fun displayChapterByNameOrNumber() = preferenceStore.getLong(
val displayChapterByNameOrNumber: Preference<Long> = preferenceStore.getLong(
"default_chapter_display_by_name_or_number",
Manga.CHAPTER_DISPLAY_NAME,
)
fun sortChapterByAscendingOrDescending() = preferenceStore.getLong(
val sortChapterByAscendingOrDescending: Preference<Long> = preferenceStore.getLong(
"default_chapter_sort_by_ascending_or_descending",
Manga.CHAPTER_SORT_DESC,
)
fun setChapterSettingsDefault(manga: Manga) {
filterChapterByRead().set(manga.unreadFilterRaw)
filterChapterByDownloaded().set(manga.downloadedFilterRaw)
filterChapterByBookmarked().set(manga.bookmarkedFilterRaw)
sortChapterBySourceOrNumber().set(manga.sorting)
displayChapterByNameOrNumber().set(manga.displayMode)
sortChapterByAscendingOrDescending().set(
filterChapterByRead.set(manga.unreadFilterRaw)
filterChapterByDownloaded.set(manga.downloadedFilterRaw)
filterChapterByBookmarked.set(manga.bookmarkedFilterRaw)
sortChapterBySourceOrNumber.set(manga.sorting)
displayChapterByNameOrNumber.set(manga.displayMode)
sortChapterByAscendingOrDescending.set(
if (manga.sortDescending()) Manga.CHAPTER_SORT_DESC else Manga.CHAPTER_SORT_ASC,
)
}
fun autoClearChapterCache() = preferenceStore.getBoolean("auto_clear_chapter_cache", false)
val autoClearChapterCache: Preference<Boolean> = preferenceStore.getBoolean("auto_clear_chapter_cache", false)
// endregion
// region Swipe Actions
fun swipeToStartAction() = preferenceStore.getEnum(
val swipeToStartAction: Preference<ChapterSwipeAction> = preferenceStore.getEnum(
"pref_chapter_swipe_end_action",
ChapterSwipeAction.ToggleBookmark,
)
fun swipeToEndAction() = preferenceStore.getEnum(
val swipeToEndAction: Preference<ChapterSwipeAction> = preferenceStore.getEnum(
"pref_chapter_swipe_start_action",
ChapterSwipeAction.ToggleRead,
)
fun updateMangaTitles() = preferenceStore.getBoolean("pref_update_library_manga_titles", false)
val updateMangaTitles: Preference<Boolean> = preferenceStore.getBoolean("pref_update_library_manga_titles", false)
fun disallowNonAsciiFilenames() = preferenceStore.getBoolean("disallow_non_ascii_filenames", false)
val disallowNonAsciiFilenames: Preference<Boolean> = preferenceStore.getBoolean(
"disallow_non_ascii_filenames",
false,
)
// endregion
@@ -213,11 +231,11 @@ class LibraryPreferences(
// SY -->
fun sortTagsForLibrary() = preferenceStore.getStringSet("sort_tags_for_library", mutableSetOf())
val sortTagsForLibrary: Preference<Set<String>> = preferenceStore.getStringSet("sort_tags_for_library", mutableSetOf())
fun groupLibraryUpdateType() = preferenceStore.getEnum("group_library_update_type", GroupLibraryMode.GLOBAL)
val groupLibraryUpdateType: Preference<GroupLibraryMode> = preferenceStore.getEnum("group_library_update_type", GroupLibraryMode.GLOBAL)
fun groupLibraryBy() = preferenceStore.getInt("group_library_by", LibraryGroup.BY_DEFAULT)
val groupLibraryBy: Preference<Int> = preferenceStore.getInt("group_library_by", LibraryGroup.BY_DEFAULT)
// SY <--
@@ -22,14 +22,14 @@ class StorageManager(
private val scope = CoroutineScope(Dispatchers.IO)
private var baseDir: UniFile? = getBaseDir(storagePreferences.baseStorageDirectory().get())
private var baseDir: UniFile? = getBaseDir(storagePreferences.baseStorageDirectory.get())
private val _changes: Channel<Unit> = Channel(Channel.UNLIMITED)
val changes = _changes.receiveAsFlow()
.shareIn(scope, SharingStarted.Lazily, 1)
init {
storagePreferences.baseStorageDirectory().changes()
storagePreferences.baseStorageDirectory.changes()
.drop(1)
.distinctUntilChanged()
.onEach { uri ->
@@ -5,9 +5,12 @@ import tachiyomi.core.common.preference.PreferenceStore
import tachiyomi.core.common.storage.FolderProvider
class StoragePreferences(
private val folderProvider: FolderProvider,
private val preferenceStore: PreferenceStore,
folderProvider: FolderProvider,
preferenceStore: PreferenceStore,
) {
fun baseStorageDirectory() = preferenceStore.getString(Preference.appStateKey("storage_dir"), folderProvider.path())
val baseStorageDirectory: Preference<String> = preferenceStore.getString(
Preference.appStateKey("storage_dir"),
folderProvider.path(),
)
}
@@ -1,34 +1,35 @@
package tachiyomi.domain.updates.service
import tachiyomi.core.common.preference.Preference
import tachiyomi.core.common.preference.PreferenceStore
import tachiyomi.core.common.preference.TriState
import tachiyomi.core.common.preference.getEnum
class UpdatesPreferences(
private val preferenceStore: PreferenceStore,
preferenceStore: PreferenceStore,
) {
fun filterDownloaded() = preferenceStore.getEnum(
val filterDownloaded: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_updates_downloaded",
TriState.DISABLED,
)
fun filterUnread() = preferenceStore.getEnum(
val filterUnread: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_updates_unread",
TriState.DISABLED,
)
fun filterStarted() = preferenceStore.getEnum(
val filterStarted: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_updates_started",
TriState.DISABLED,
)
fun filterBookmarked() = preferenceStore.getEnum(
val filterBookmarked: Preference<TriState> = preferenceStore.getEnum(
"pref_filter_updates_bookmarked",
TriState.DISABLED,
)
fun filterExcludedScanlators() = preferenceStore.getBoolean(
val filterExcludedScanlators: Preference<Boolean> = preferenceStore.getBoolean(
"pref_filter_updates_hide_excluded_scanlators",
false,
)