From af51607053c802aa3d1e3b3d41e73cbaf85746ca Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Fri, 20 Mar 2026 14:57:01 +0600 Subject: [PATCH] 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 --- .../eu/kanade/domain/base/BasePreferences.kt | 27 ++- .../chapter/interactor/SetReadStatus.kt | 2 +- .../interactor/SyncChaptersWithSource.kt | 2 +- .../interactor/GetExtensionLanguages.kt | 2 +- .../interactor/GetExtensionSources.kt | 2 +- .../interactor/GetExtensionsByType.kt | 4 +- .../extension/interactor/TrustExtension.kt | 6 +- .../domain/manga/interactor/CreateSortTag.kt | 4 +- .../domain/manga/interactor/DeleteSortTag.kt | 2 +- .../domain/manga/interactor/GetSortTag.kt | 4 +- .../domain/manga/interactor/ReorderSortTag.kt | 2 +- .../domain/manga/interactor/UpdateManga.kt | 2 +- .../eu/kanade/domain/manga/model/Manga.kt | 2 +- .../source/interactor/CreateSourceCategory.kt | 2 +- .../source/interactor/DeleteSourceCategory.kt | 4 +- .../source/interactor/GetEnabledSources.kt | 14 +- .../source/interactor/GetIncognitoState.kt | 10 +- .../interactor/GetLanguagesWithSources.kt | 4 +- .../domain/source/interactor/GetShowLatest.kt | 2 +- .../source/interactor/GetSourceCategories.kt | 2 +- .../interactor/GetSourcesWithFavoriteCount.kt | 4 +- .../source/interactor/RenameSourceCategory.kt | 4 +- .../source/interactor/SetMigrateSorting.kt | 4 +- .../source/interactor/SetSourceCategories.kt | 2 +- .../interactor/ToggleExcludeFromDataSaver.kt | 2 +- .../source/interactor/ToggleIncognito.kt | 2 +- .../source/interactor/ToggleLanguage.kt | 4 +- .../domain/source/interactor/ToggleSource.kt | 6 +- .../source/interactor/ToggleSourcePin.kt | 4 +- .../source/service/SourcePreferences.kt | 88 +++++---- .../eu/kanade/domain/sync/SyncPreferences.kt | 18 +- .../domain/track/service/TrackPreferences.kt | 8 +- .../java/eu/kanade/domain/ui/UiPreferences.kt | 37 ++-- .../presentation/components/DateText.kt | 4 +- .../library/LibrarySettingsDialog.kt | 44 ++--- .../manga/ChapterSettingsDialog.kt | 2 +- .../manga/components/MangaInfoHeader.kt | 2 +- .../more/onboarding/PermissionStep.kt | 4 +- .../more/onboarding/StorageStep.kt | 2 +- .../presentation/more/onboarding/ThemeStep.kt | 6 +- .../settings/screen/ConfigureExhDialog.kt | 4 +- .../settings/screen/SettingsAdvancedScreen.kt | 54 ++--- .../screen/SettingsAppearanceScreen.kt | 32 +-- .../settings/screen/SettingsBrowseScreen.kt | 18 +- .../settings/screen/SettingsDataScreen.kt | 28 +-- .../settings/screen/SettingsDownloadScreen.kt | 32 +-- .../more/settings/screen/SettingsEhScreen.kt | 72 +++---- .../settings/screen/SettingsLibraryScreen.kt | 30 +-- .../settings/screen/SettingsMangadexScreen.kt | 4 +- .../settings/screen/SettingsReaderScreen.kt | 134 ++++++------- .../settings/screen/SettingsSecurityScreen.kt | 28 +-- .../settings/screen/SettingsTrackingScreen.kt | 8 +- .../more/settings/screen/about/AboutScreen.kt | 2 +- .../settings/screen/debug/DebugInfoScreen.kt | 2 +- .../settings/screen/debug/WorkerInfoScreen.kt | 2 +- .../presentation/reader/DisplayRefreshHost.kt | 6 +- .../reader/settings/ColorFilterPage.kt | 30 +-- .../reader/settings/GeneralSettingsPage.kt | 40 ++-- .../reader/settings/ReadingModePage.kt | 82 ++++---- .../presentation/theme/TachiyomiTheme.kt | 4 +- .../updates/UpdatesFilterDialog.kt | 12 +- app/src/main/java/eu/kanade/tachiyomi/App.kt | 16 +- .../tachiyomi/data/backup/BackupNotifier.kt | 2 +- .../data/backup/create/BackupCreateJob.kt | 2 +- .../data/backup/create/BackupCreator.kt | 2 +- .../restore/restorers/CategoriesRestorer.kt | 2 +- .../tachiyomi/data/cache/ChapterCache.kt | 4 +- .../tachiyomi/data/download/DownloadJob.kt | 4 +- .../data/download/DownloadManager.kt | 4 +- .../data/download/DownloadNotifier.kt | 2 +- .../data/download/DownloadProvider.kt | 12 +- .../tachiyomi/data/download/Downloader.kt | 12 +- .../data/library/LibraryUpdateJob.kt | 22 +-- .../data/library/LibraryUpdateNotifier.kt | 8 +- .../data/notification/NotificationReceiver.kt | 2 +- .../kanade/tachiyomi/data/sync/SyncDataJob.kt | 2 +- .../kanade/tachiyomi/data/sync/SyncManager.kt | 12 +- .../tachiyomi/data/sync/SyncNotifier.kt | 2 +- .../sync/service/GoogleDriveSyncService.kt | 12 +- .../data/sync/service/SyncService.kt | 4 +- .../data/sync/service/SyncYomiSyncService.kt | 16 +- .../tachiyomi/data/track/anilist/Anilist.kt | 2 +- .../data/track/anilist/AnilistUtils.kt | 2 +- .../java/eu/kanade/tachiyomi/di/AppModule.kt | 2 +- .../kanade/tachiyomi/di/PreferenceModule.kt | 2 +- .../tachiyomi/extension/ExtensionManager.kt | 14 +- .../tachiyomi/extension/api/ExtensionApi.kt | 4 +- .../extension/api/ExtensionUpdateNotifier.kt | 2 +- .../extension/util/ExtensionInstaller.kt | 2 +- .../extension/util/ExtensionLoader.kt | 2 +- .../tachiyomi/source/AndroidSourceManager.kt | 11 +- .../tachiyomi/source/SourceExtensions.kt | 2 +- .../tachiyomi/source/online/all/EHentai.kt | 22 +-- .../base/delegate/SecureActivityDelegate.kt | 24 +-- .../ui/base/delegate/ThemingDelegate.kt | 2 +- .../kanade/tachiyomi/ui/browse/BrowseTab.kt | 4 +- .../extension/ExtensionFilterScreenModel.kt | 2 +- .../browse/extension/ExtensionsScreenModel.kt | 4 +- .../details/ExtensionDetailsScreenModel.kt | 2 +- .../ui/browse/feed/FeedScreenModel.kt | 6 +- .../tachiyomi/ui/browse/feed/FeedTab.kt | 4 +- .../advanced/design/MigrationSourceHolder.kt | 2 +- .../search/MigrateSearchScreenModel.kt | 2 +- .../sources/MigrateSourceScreenModel.kt | 4 +- .../browse/source/SourcesFilterScreenModel.kt | 4 +- .../ui/browse/source/SourcesScreenModel.kt | 6 +- .../source/browse/BrowseSourceScreenModel.kt | 16 +- .../source/feed/SourceFeedScreenModel.kt | 2 +- .../source/globalsearch/SearchScreenModel.kt | 10 +- .../biometric/BiometricTimesScreenModel.kt | 6 +- .../ui/history/HistoryScreenModel.kt | 2 +- .../kanade/tachiyomi/ui/history/HistoryTab.kt | 2 +- .../eu/kanade/tachiyomi/ui/home/HomeScreen.kt | 8 +- .../ui/library/LibraryScreenModel.kt | 62 +++--- .../ui/library/LibrarySettingsScreenModel.kt | 4 +- .../kanade/tachiyomi/ui/main/MainActivity.kt | 16 +- .../tachiyomi/ui/manga/MangaScreenModel.kt | 22 +-- .../ui/manga/track/TrackInfoDialog.kt | 4 +- .../eu/kanade/tachiyomi/ui/more/MoreTab.kt | 8 +- .../tachiyomi/ui/more/OnboardingScreen.kt | 4 +- .../tachiyomi/ui/reader/ReaderActivity.kt | 72 +++---- .../tachiyomi/ui/reader/ReaderViewModel.kt | 48 ++--- .../ui/reader/loader/ArchivePageLoader.kt | 6 +- .../ui/reader/loader/ChapterLoader.kt | 2 +- .../ui/reader/loader/HttpPageLoader.kt | 8 +- .../ui/reader/setting/ReaderPreferences.kt | 184 +++++++++++------- .../ui/reader/viewer/ReaderPageImageView.kt | 2 +- .../ui/reader/viewer/ViewerConfig.kt | 16 +- .../ui/reader/viewer/pager/PagerConfig.kt | 42 ++-- .../ui/reader/viewer/webtoon/WebtoonConfig.kt | 30 +-- .../ui/reader/viewer/webtoon/WebtoonViewer.kt | 2 +- .../tachiyomi/ui/stats/StatsScreenModel.kt | 6 +- .../ui/updates/UpdatesScreenModel.kt | 16 +- .../kanade/tachiyomi/ui/updates/UpdatesTab.kt | 2 +- .../eu/kanade/tachiyomi/util/CrashLogUtil.kt | 2 +- .../util/system/ContextExtensions.kt | 6 +- .../util/system/DisplayExtensions.kt | 2 +- .../widget/TachiyomiTextInputEditText.kt | 2 +- app/src/main/java/exh/GalleryAdder.kt | 2 +- .../main/java/exh/eh/EHentaiUpdateNotifier.kt | 2 +- .../main/java/exh/eh/EHentaiUpdateWorker.kt | 12 +- .../java/exh/favorites/FavoritesSyncHelper.kt | 10 +- .../main/java/exh/log/EHDebugModeOverlay.kt | 2 +- app/src/main/java/exh/md/utils/MdUtil.kt | 6 +- .../RecommendationSearchBottomSheetDialog.kt | 4 +- .../recs/batch/RecommendationSearchHelper.kt | 4 +- .../sources/RecommendationPagingSource.kt | 2 +- .../main/java/exh/uconfig/EHConfigurator.kt | 6 +- .../main/java/exh/uconfig/EhUConfigBuilder.kt | 16 +- .../exh/ui/batchadd/BatchAddScreenModel.kt | 2 +- .../main/java/exh/ui/login/EhLoginActivity.kt | 8 +- app/src/main/java/exh/util/DataSaver.kt | 24 +-- .../migrations/AlwaysBackupMigration.kt | 4 +- .../CategoryPreferencesCleanupMigration.kt | 14 +- .../ChangeMiuiExtensionInstallerMigration.kt | 4 +- .../ChangeThemeModeToUppercaseMigration.kt | 6 +- .../migrations/InstallationIdMigration.kt | 2 +- .../MoveCacheToDiskSettingMigration.kt | 2 +- .../migrations/MoveDOHSettingMigration.kt | 2 +- .../MoveExtensionRepoSettingsMigration.kt | 2 +- .../MoveLibraryNonCompleteSettingMigration.kt | 2 +- .../MoveLibrarySortingSettingsMigration.kt | 6 +- .../MoveReaderTapSettingMigration.kt | 4 +- .../MoveReadingButtonSettingMigration.kt | 2 +- .../MoveRelativeTimeSettingMigration.kt | 2 +- .../MoveSecureScreenSettingMigration.kt | 2 +- .../MoveSortingModeSettingMigration.kt | 4 +- .../MoveSortingModeSettingsMigration.kt | 4 +- ...RemoveBatteryNotLowRestrictionMigration.kt | 2 +- .../RemoveOldReaderThemeMigration.kt | 4 +- .../RemoveShortLibraryUpdatesMigration.kt | 4 +- .../RemoveShorterLibraryUpdatesMigration.kt | 4 +- .../ResetFilterAndSortSettingsMigration.kt | 12 +- .../TrustExtensionRepositoryMigration.kt | 4 +- .../migration/usecases/MigrateMangaUseCase.kt | 2 +- .../migration/config/MigrationConfigScreen.kt | 14 +- .../config/MigrationConfigScreenSheet.kt | 14 +- .../migration/dialog/MigrateMangaDialog.kt | 4 +- .../list/MigrationListScreenModel.kt | 10 +- .../core/security/PrivacyPreferences.kt | 7 +- .../core/security/SecurityPreferences.kt | 31 +-- .../kanade/tachiyomi/network/NetworkHelper.kt | 4 +- .../tachiyomi/network/NetworkPreferences.kt | 22 +-- .../tachiyomi/util/storage/CbzCrypto.kt | 16 +- .../exh/pref/DelegateSourcePreferences.kt | 5 +- .../main/java/exh/source/ExhPreferences.kt | 56 +++--- .../interactor/FilterChaptersForDownload.kt | 8 +- .../backup/service/BackupPreferences.kt | 9 +- .../interactor/CreateCategoryWithName.kt | 2 +- .../category/interactor/DeleteCategory.kt | 14 +- .../category/interactor/ResetCategoryFlags.kt | 2 +- .../category/interactor/SetDisplayMode.kt | 2 +- .../interactor/SetSortModeForCategory.kt | 10 +- .../interactor/SetMangaDefaultChapterFlags.kt | 12 +- .../download/service/DownloadPreferences.kt | 48 +++-- .../library/service/LibraryPreferences.kt | 124 +++++++----- .../domain/storage/service/StorageManager.kt | 4 +- .../storage/service/StoragePreferences.kt | 9 +- .../updates/service/UpdatesPreferences.kt | 13 +- .../widget/BaseUpdatesGridGlanceWidget.kt | 2 +- .../presentation/widget/WidgetManager.kt | 2 +- .../tachiyomi/source/online/HttpSource.kt | 2 +- .../metadata/EHentaiSearchMetadata.kt | 2 +- .../kotlin/exh/source/EnhancedHttpSource.kt | 2 +- 204 files changed, 1300 insertions(+), 1203 deletions(-) diff --git a/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt b/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt index 0caee6f88..45ed21530 100644 --- a/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt +++ b/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt @@ -9,19 +9,22 @@ import tachiyomi.i18n.MR class BasePreferences( val context: Context, - private val preferenceStore: PreferenceStore, + preferenceStore: PreferenceStore, ) { - fun downloadedOnly() = preferenceStore.getBoolean( + val downloadedOnly: Preference = preferenceStore.getBoolean( Preference.appStateKey("pref_downloaded_only"), false, ) - fun incognitoMode() = preferenceStore.getBoolean(Preference.appStateKey("incognito_mode"), false) + val incognitoMode: Preference = preferenceStore.getBoolean(Preference.appStateKey("incognito_mode"), false) - fun extensionInstaller() = ExtensionInstallerPreference(context, preferenceStore) + val extensionInstaller: ExtensionInstallerPreference = ExtensionInstallerPreference(context, preferenceStore) - fun shownOnboardingFlow() = preferenceStore.getBoolean(Preference.appStateKey("onboarding_complete"), false) + val shownOnboardingFlow: Preference = preferenceStore.getBoolean( + Preference.appStateKey("onboarding_complete"), + false, + ) enum class ExtensionInstaller(val titleRes: StringResource, val requiresSystemPermission: Boolean) { LEGACY(MR.strings.ext_installer_legacy, true), @@ -30,11 +33,17 @@ class BasePreferences( PRIVATE(MR.strings.ext_installer_private, false), } - fun displayProfile() = preferenceStore.getString("pref_display_profile_key", "") + val displayProfile: Preference = preferenceStore.getString("pref_display_profile_key", "") - fun hardwareBitmapThreshold() = preferenceStore.getInt("pref_hardware_bitmap_threshold", GLUtil.SAFE_TEXTURE_LIMIT) + val hardwareBitmapThreshold: Preference = preferenceStore.getInt( + "pref_hardware_bitmap_threshold", + GLUtil.SAFE_TEXTURE_LIMIT, + ) - fun alwaysDecodeLongStripWithSSIV() = preferenceStore.getBoolean("pref_always_decode_long_strip_with_ssiv", false) + val alwaysDecodeLongStripWithSSIV: Preference = preferenceStore.getBoolean( + "pref_always_decode_long_strip_with_ssiv", + false, + ) - fun installationId() = preferenceStore.getString(Preference.appStateKey("installation_id"), "") + val installationId: Preference = preferenceStore.getString(Preference.appStateKey("installation_id"), "") } diff --git a/app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt b/app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt index 12cbc7b5c..b2df864b0 100644 --- a/app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt +++ b/app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt @@ -51,7 +51,7 @@ class SetReadStatus( return@withNonCancellableContext Result.InternalError(e) } - if (read && downloadPreferences.removeAfterMarkedAsRead().get()) { + if (read && downloadPreferences.removeAfterMarkedAsRead.get()) { chaptersToUpdate .groupBy { it.mangaId } .forEach { (mangaId, chapters) -> diff --git a/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt b/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt index e135c093e..de69ab656 100644 --- a/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt +++ b/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt @@ -176,7 +176,7 @@ class SyncChaptersWithSource( val deletedChapterNumberDateFetchMap = removedChapters.sortedByDescending { it.dateFetch } .associate { it.chapterNumber to it.dateFetch } - val markDuplicateAsRead = libraryPreferences.markDuplicateReadChapterAsRead().get() + val markDuplicateAsRead = libraryPreferences.markDuplicateReadChapterAsRead.get() .contains(LibraryPreferences.MARK_DUPLICATE_CHAPTER_READ_NEW) // Date fetch is set in such a way that the upper ones will have bigger value than the lower ones diff --git a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt index 968cfbabe..c155af248 100644 --- a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt +++ b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt @@ -12,7 +12,7 @@ class GetExtensionLanguages( ) { fun subscribe(): Flow> { return combine( - preferences.enabledLanguages().changes(), + preferences.enabledLanguages.changes(), extensionManager.availableExtensionsFlow, ) { enabledLanguage, availableExtensions -> availableExtensions diff --git a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionSources.kt b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionSources.kt index 7c7a6a919..76d2abe01 100644 --- a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionSources.kt +++ b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionSources.kt @@ -15,7 +15,7 @@ class GetExtensionSources( val isMultiLangSingleSource = isMultiSource && extension.sources.map { it.name }.distinct().size == 1 - return preferences.disabledSources().changes().map { disabledSources -> + return preferences.disabledSources.changes().map { disabledSources -> fun Source.isEnabled() = id.toString() !in disabledSources extension.sources diff --git a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionsByType.kt b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionsByType.kt index 77d51409a..50efb8ba8 100644 --- a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionsByType.kt +++ b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionsByType.kt @@ -13,10 +13,10 @@ class GetExtensionsByType( ) { fun subscribe(): Flow { - val showNsfwSources = preferences.showNsfwSource().get() + val showNsfwSources = preferences.showNsfwSource.get() return combine( - preferences.enabledLanguages().changes(), + preferences.enabledLanguages.changes(), extensionManager.installedExtensionsFlow, extensionManager.untrustedExtensionsFlow, extensionManager.availableExtensionsFlow, diff --git a/app/src/main/java/eu/kanade/domain/extension/interactor/TrustExtension.kt b/app/src/main/java/eu/kanade/domain/extension/interactor/TrustExtension.kt index b4259945d..40871be05 100644 --- a/app/src/main/java/eu/kanade/domain/extension/interactor/TrustExtension.kt +++ b/app/src/main/java/eu/kanade/domain/extension/interactor/TrustExtension.kt @@ -14,11 +14,11 @@ class TrustExtension( suspend fun isTrusted(pkgInfo: PackageInfo, fingerprints: List): Boolean { val trustedFingerprints = extensionRepoRepository.getAll().map { it.signingKeyFingerprint }.toHashSet() val key = "${pkgInfo.packageName}:${PackageInfoCompat.getLongVersionCode(pkgInfo)}:${fingerprints.last()}" - return trustedFingerprints.any { fingerprints.contains(it) } || key in preferences.trustedExtensions().get() + return trustedFingerprints.any { fingerprints.contains(it) } || key in preferences.trustedExtensions.get() } fun trust(pkgName: String, versionCode: Long, signatureHash: String) { - preferences.trustedExtensions().getAndSet { exts -> + preferences.trustedExtensions.getAndSet { exts -> // Remove previously trusted versions val removed = exts.filterNot { it.startsWith("$pkgName:") }.toMutableSet() @@ -27,6 +27,6 @@ class TrustExtension( } fun revokeAll() { - preferences.trustedExtensions().delete() + preferences.trustedExtensions.delete() } } diff --git a/app/src/main/java/eu/kanade/domain/manga/interactor/CreateSortTag.kt b/app/src/main/java/eu/kanade/domain/manga/interactor/CreateSortTag.kt index 38a99bd40..bc22f95ed 100644 --- a/app/src/main/java/eu/kanade/domain/manga/interactor/CreateSortTag.kt +++ b/app/src/main/java/eu/kanade/domain/manga/interactor/CreateSortTag.kt @@ -15,9 +15,9 @@ class CreateSortTag( return Result.TagExists } - val size = preferences.sortTagsForLibrary().get().size + val size = preferences.sortTagsForLibrary.get().size - preferences.sortTagsForLibrary() += encodeTag(size, tag) + preferences.sortTagsForLibrary += encodeTag(size, tag) return Result.Success } diff --git a/app/src/main/java/eu/kanade/domain/manga/interactor/DeleteSortTag.kt b/app/src/main/java/eu/kanade/domain/manga/interactor/DeleteSortTag.kt index b113aa535..e2e2f13ab 100644 --- a/app/src/main/java/eu/kanade/domain/manga/interactor/DeleteSortTag.kt +++ b/app/src/main/java/eu/kanade/domain/manga/interactor/DeleteSortTag.kt @@ -8,7 +8,7 @@ class DeleteSortTag( ) { fun await(tag: String) { - preferences.sortTagsForLibrary().set( + preferences.sortTagsForLibrary.set( (getSortTag.await() - tag).mapIndexed { index, s -> CreateSortTag.encodeTag(index, s) }.toSet(), diff --git a/app/src/main/java/eu/kanade/domain/manga/interactor/GetSortTag.kt b/app/src/main/java/eu/kanade/domain/manga/interactor/GetSortTag.kt index f3b3ab682..d5cd14ebe 100644 --- a/app/src/main/java/eu/kanade/domain/manga/interactor/GetSortTag.kt +++ b/app/src/main/java/eu/kanade/domain/manga/interactor/GetSortTag.kt @@ -7,14 +7,14 @@ import tachiyomi.domain.library.service.LibraryPreferences class GetSortTag(private val preferences: LibraryPreferences) { fun subscribe(): Flow> { - return preferences.sortTagsForLibrary().changes() + return preferences.sortTagsForLibrary.changes() .map(::mapSortTags) } fun await() = getSortTags(preferences).let(::mapSortTags) companion object { - fun getSortTags(preferences: LibraryPreferences) = preferences.sortTagsForLibrary().get() + fun getSortTags(preferences: LibraryPreferences) = preferences.sortTagsForLibrary.get() fun mapSortTags(tags: Set) = tags.mapNotNull { val index = it.indexOf('|') diff --git a/app/src/main/java/eu/kanade/domain/manga/interactor/ReorderSortTag.kt b/app/src/main/java/eu/kanade/domain/manga/interactor/ReorderSortTag.kt index e3d9279d0..ad3086e8f 100644 --- a/app/src/main/java/eu/kanade/domain/manga/interactor/ReorderSortTag.kt +++ b/app/src/main/java/eu/kanade/domain/manga/interactor/ReorderSortTag.kt @@ -23,7 +23,7 @@ class ReorderSortTag( val reorderedTag = reorderedTags.removeAt(currentIndex) reorderedTags.add(newPosition, reorderedTag) - preferences.sortTagsForLibrary().set( + preferences.sortTagsForLibrary.set( reorderedTags.mapIndexed { index, s -> CreateSortTag.encodeTag(index, s) }.toSet(), diff --git a/app/src/main/java/eu/kanade/domain/manga/interactor/UpdateManga.kt b/app/src/main/java/eu/kanade/domain/manga/interactor/UpdateManga.kt index 7117e07af..52bce0fc3 100644 --- a/app/src/main/java/eu/kanade/domain/manga/interactor/UpdateManga.kt +++ b/app/src/main/java/eu/kanade/domain/manga/interactor/UpdateManga.kt @@ -44,7 +44,7 @@ class UpdateManga( // if the manga isn't a favorite (or 'update titles' preference is enabled), set its title from source and update in db val title = - if (remoteTitle.isNotEmpty() && (!localManga.favorite || libraryPreferences.updateMangaTitles().get())) { + if (remoteTitle.isNotEmpty() && (!localManga.favorite || libraryPreferences.updateMangaTitles.get())) { remoteTitle } else { null diff --git a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt index cbf49c079..3564553d4 100644 --- a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt +++ b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt @@ -23,7 +23,7 @@ val Manga.readerOrientation: Long val Manga.downloadedFilter: TriState get() { - if (Injekt.get().downloadedOnly().get()) return TriState.ENABLED_IS + if (Injekt.get().downloadedOnly.get()) return TriState.ENABLED_IS return when (downloadedFilterRaw) { Manga.CHAPTER_SHOW_DOWNLOADED -> TriState.ENABLED_IS Manga.CHAPTER_SHOW_NOT_DOWNLOADED -> TriState.ENABLED_NOT diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/CreateSourceCategory.kt b/app/src/main/java/eu/kanade/domain/source/interactor/CreateSourceCategory.kt index 93859fa51..0234b6f5a 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/CreateSourceCategory.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/CreateSourceCategory.kt @@ -11,7 +11,7 @@ class CreateSourceCategory(private val preferences: SourcePreferences) { } // Create category. - preferences.sourcesTabCategories() += category + preferences.sourcesTabCategories += category return Result.Success } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/DeleteSourceCategory.kt b/app/src/main/java/eu/kanade/domain/source/interactor/DeleteSourceCategory.kt index d6ab62fdf..d00da9317 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/DeleteSourceCategory.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/DeleteSourceCategory.kt @@ -7,9 +7,9 @@ import tachiyomi.core.common.preference.minusAssign class DeleteSourceCategory(private val preferences: SourcePreferences) { fun await(category: String) { - preferences.sourcesTabSourcesInCategories().getAndSet { sourcesInCategories -> + preferences.sourcesTabSourcesInCategories.getAndSet { sourcesInCategories -> sourcesInCategories.filterNot { it.substringAfter("|") == category }.toSet() } - preferences.sourcesTabCategories() -= category + preferences.sourcesTabCategories -= category } } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt b/app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt index 5d02514c1..d67580c1c 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt @@ -18,17 +18,17 @@ class GetEnabledSources( fun subscribe(): Flow> { return combine( - preferences.pinnedSources().changes(), + preferences.pinnedSources.changes(), combine( - preferences.enabledLanguages().changes(), - preferences.disabledSources().changes(), - preferences.lastUsedSource().changes(), + preferences.enabledLanguages.changes(), + preferences.disabledSources.changes(), + preferences.lastUsedSource.changes(), ) { a, b, c -> Triple(a, b, c) }, // SY --> combine( - preferences.dataSaverExcludedSources().changes(), - preferences.sourcesTabSourcesInCategories().changes(), - preferences.sourcesTabCategoriesFilter().changes(), + preferences.dataSaverExcludedSources.changes(), + preferences.sourcesTabSourcesInCategories.changes(), + preferences.sourcesTabCategoriesFilter.changes(), ) { a, b, c -> Triple(a, b, c) }, // SY <-- repository.getSources(), diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/GetIncognitoState.kt b/app/src/main/java/eu/kanade/domain/source/interactor/GetIncognitoState.kt index 41ab65f30..d39a5ad5f 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/GetIncognitoState.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/GetIncognitoState.kt @@ -13,19 +13,19 @@ class GetIncognitoState( private val extensionManager: ExtensionManager, ) { fun await(sourceId: Long?): Boolean { - if (basePreferences.incognitoMode().get()) return true + if (basePreferences.incognitoMode.get()) return true if (sourceId == null) return false val extensionPackage = extensionManager.getExtensionPackage(sourceId) ?: return false - return extensionPackage in sourcePreferences.incognitoExtensions().get() + return extensionPackage in sourcePreferences.incognitoExtensions.get() } fun subscribe(sourceId: Long?): Flow { - if (sourceId == null) return basePreferences.incognitoMode().changes() + if (sourceId == null) return basePreferences.incognitoMode.changes() return combine( - basePreferences.incognitoMode().changes(), - sourcePreferences.incognitoExtensions().changes(), + basePreferences.incognitoMode.changes(), + sourcePreferences.incognitoExtensions.changes(), extensionManager.getExtensionPackageAsFlow(sourceId), ) { incognito, incognitoExtensions, extensionPackage -> incognito || (extensionPackage in incognitoExtensions) diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt b/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt index 9ebb244b8..9f7cd84bc 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt @@ -16,8 +16,8 @@ class GetLanguagesWithSources( fun subscribe(): Flow>> { return combine( - preferences.enabledLanguages().changes(), - preferences.disabledSources().changes(), + preferences.enabledLanguages.changes(), + preferences.disabledSources.changes(), repository.getOnlineSources(), ) { enabledLanguage, disabledSource, onlineSources -> val sortedSources = onlineSources.filterNot { it.id in BlacklistedSources.HIDDEN_SOURCES }.sortedWith( diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/GetShowLatest.kt b/app/src/main/java/eu/kanade/domain/source/interactor/GetShowLatest.kt index cdb5b9f67..a99109c66 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/GetShowLatest.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/GetShowLatest.kt @@ -9,7 +9,7 @@ class GetShowLatest( ) { fun subscribe(hasSmartSearchConfig: Boolean): Flow { - return preferences.useNewSourceNavigation().changes() + return preferences.useNewSourceNavigation.changes() .map { !hasSmartSearchConfig && !it } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/GetSourceCategories.kt b/app/src/main/java/eu/kanade/domain/source/interactor/GetSourceCategories.kt index b0b15d998..dd4759bb4 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/GetSourceCategories.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/GetSourceCategories.kt @@ -9,6 +9,6 @@ class GetSourceCategories( ) { fun subscribe(): Flow> { - return preferences.sourcesTabCategories().changes().map { it.sortedWith(String.CASE_INSENSITIVE_ORDER) } + return preferences.sourcesTabCategories.changes().map { it.sortedWith(String.CASE_INSENSITIVE_ORDER) } } } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/GetSourcesWithFavoriteCount.kt b/app/src/main/java/eu/kanade/domain/source/interactor/GetSourcesWithFavoriteCount.kt index 962fbb8a6..cb6debd7e 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/GetSourcesWithFavoriteCount.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/GetSourcesWithFavoriteCount.kt @@ -16,8 +16,8 @@ class GetSourcesWithFavoriteCount( fun subscribe(): Flow>> { return combine( - preferences.migrationSortingDirection().changes(), - preferences.migrationSortingMode().changes(), + preferences.migrationSortingDirection.changes(), + preferences.migrationSortingMode.changes(), repository.getSourcesWithFavoriteCount(), ) { direction, mode, list -> list diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/RenameSourceCategory.kt b/app/src/main/java/eu/kanade/domain/source/interactor/RenameSourceCategory.kt index e61e4e435..30fedeff5 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/RenameSourceCategory.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/RenameSourceCategory.kt @@ -14,7 +14,7 @@ class RenameSourceCategory( CreateSourceCategory.Result.Success -> {} } - preferences.sourcesTabSourcesInCategories().getAndSet { sourcesInCategories -> + preferences.sourcesTabSourcesInCategories.getAndSet { sourcesInCategories -> sourcesInCategories.map { val index = it.indexOf('|') if (index != -1 && it.substring(index + 1) == categoryOld) { @@ -24,7 +24,7 @@ class RenameSourceCategory( } }.toSet() } - preferences.sourcesTabCategories().getAndSet { + preferences.sourcesTabCategories.getAndSet { it.minus(categoryOld).plus(categoryNew) } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/SetMigrateSorting.kt b/app/src/main/java/eu/kanade/domain/source/interactor/SetMigrateSorting.kt index 4e4ae4bdd..9a5e08177 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/SetMigrateSorting.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/SetMigrateSorting.kt @@ -7,8 +7,8 @@ class SetMigrateSorting( ) { fun await(mode: Mode, direction: Direction) { - preferences.migrationSortingMode().set(mode) - preferences.migrationSortingDirection().set(direction) + preferences.migrationSortingMode.set(mode) + preferences.migrationSortingDirection.set(direction) } enum class Mode { diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/SetSourceCategories.kt b/app/src/main/java/eu/kanade/domain/source/interactor/SetSourceCategories.kt index a75e00d19..32cb5855e 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/SetSourceCategories.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/SetSourceCategories.kt @@ -10,7 +10,7 @@ class SetSourceCategories( fun await(source: Source, sourceCategories: List) { val sourceIdString = source.id.toString() - preferences.sourcesTabSourcesInCategories().getAndSet { sourcesInCategories -> + preferences.sourcesTabSourcesInCategories.getAndSet { sourcesInCategories -> val currentSourceCategories = sourcesInCategories.filterNot { it.substringBefore('|') == sourceIdString } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleExcludeFromDataSaver.kt b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleExcludeFromDataSaver.kt index 7cce871a9..b9e8c9c73 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleExcludeFromDataSaver.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleExcludeFromDataSaver.kt @@ -9,7 +9,7 @@ class ToggleExcludeFromDataSaver( ) { fun await(source: Source) { - preferences.dataSaverExcludedSources().getAndSet { + preferences.dataSaverExcludedSources.getAndSet { if (source.id.toString() in it) { it - source.id.toString() } else { diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleIncognito.kt b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleIncognito.kt index ccd13bf6a..7816171ea 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleIncognito.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleIncognito.kt @@ -7,7 +7,7 @@ class ToggleIncognito( private val preferences: SourcePreferences, ) { fun await(extensions: String, enable: Boolean) { - preferences.incognitoExtensions().getAndSet { + preferences.incognitoExtensions.getAndSet { if (enable) it.plus(extensions) else it.minus(extensions) } } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleLanguage.kt b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleLanguage.kt index c813890d2..6af4d0085 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleLanguage.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleLanguage.kt @@ -8,8 +8,8 @@ class ToggleLanguage( ) { fun await(language: String) { - val isEnabled = language in preferences.enabledLanguages().get() - preferences.enabledLanguages().getAndSet { enabled -> + val isEnabled = language in preferences.enabledLanguages.get() + preferences.enabledLanguages.getAndSet { enabled -> if (isEnabled) enabled.minus(language) else enabled.plus(language) } } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSource.kt b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSource.kt index ec13f8d4b..5a2b6be0f 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSource.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSource.kt @@ -13,19 +13,19 @@ class ToggleSource( } fun await(sourceId: Long, enable: Boolean = isEnabled(sourceId)) { - preferences.disabledSources().getAndSet { disabled -> + preferences.disabledSources.getAndSet { disabled -> if (enable) disabled.minus("$sourceId") else disabled.plus("$sourceId") } } fun await(sourceIds: List, enable: Boolean) { val transformedSourceIds = sourceIds.map { it.toString() } - preferences.disabledSources().getAndSet { disabled -> + preferences.disabledSources.getAndSet { disabled -> if (enable) disabled.minus(transformedSourceIds) else disabled.plus(transformedSourceIds) } } private fun isEnabled(sourceId: Long): Boolean { - return sourceId.toString() in preferences.disabledSources().get() + return sourceId.toString() in preferences.disabledSources.get() } } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSourcePin.kt b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSourcePin.kt index 0a49a53ba..e9fbfd1bc 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSourcePin.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSourcePin.kt @@ -9,8 +9,8 @@ class ToggleSourcePin( ) { fun await(source: Source) { - val isPinned = source.id.toString() in preferences.pinnedSources().get() - preferences.pinnedSources().getAndSet { pinned -> + val isPinned = source.id.toString() in preferences.pinnedSources.get() + preferences.pinnedSources.getAndSet { pinned -> if (isPinned) pinned.minus("${source.id}") else pinned.plus("${source.id}") } } diff --git a/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt b/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt index e4d61d41b..a270ac71e 100644 --- a/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt +++ b/app/src/main/java/eu/kanade/domain/source/service/SourcePreferences.kt @@ -10,80 +10,86 @@ import tachiyomi.core.common.preference.getLongArray import tachiyomi.domain.library.model.LibraryDisplayMode class SourcePreferences( - private val preferenceStore: PreferenceStore, + preferenceStore: PreferenceStore, ) { - fun sourceDisplayMode() = preferenceStore.getObjectFromString( + val sourceDisplayMode: Preference = preferenceStore.getObjectFromString( "pref_display_mode_catalogue", LibraryDisplayMode.default, LibraryDisplayMode.Serializer::serialize, LibraryDisplayMode.Serializer::deserialize, ) - fun enabledLanguages() = preferenceStore.getStringSet("source_languages", LocaleHelper.getDefaultEnabledLanguages()) + val enabledLanguages: Preference> = preferenceStore.getStringSet( + "source_languages", + LocaleHelper.getDefaultEnabledLanguages(), + ) - fun disabledSources() = preferenceStore.getStringSet("hidden_catalogues", emptySet()) + val disabledSources: Preference> = preferenceStore.getStringSet("hidden_catalogues", emptySet()) - fun incognitoExtensions() = preferenceStore.getStringSet("incognito_extensions", emptySet()) + val incognitoExtensions: Preference> = preferenceStore.getStringSet("incognito_extensions", emptySet()) - fun pinnedSources() = preferenceStore.getStringSet("pinned_catalogues", emptySet()) + val pinnedSources: Preference> = preferenceStore.getStringSet("pinned_catalogues", emptySet()) - fun lastUsedSource() = preferenceStore.getLong( + val lastUsedSource: Preference = preferenceStore.getLong( Preference.appStateKey("last_catalogue_source"), -1, ) - fun showNsfwSource() = preferenceStore.getBoolean("show_nsfw_source", true) + val showNsfwSource: Preference = preferenceStore.getBoolean("show_nsfw_source", true) - fun migrationSortingMode() = preferenceStore.getEnum("pref_migration_sorting", SetMigrateSorting.Mode.ALPHABETICAL) + val migrationSortingMode: Preference = preferenceStore.getEnum( + "pref_migration_sorting", + SetMigrateSorting.Mode.ALPHABETICAL, + ) - fun migrationSortingDirection() = preferenceStore.getEnum( + val migrationSortingDirection: Preference = preferenceStore.getEnum( "pref_migration_direction", SetMigrateSorting.Direction.ASCENDING, ) - fun hideInLibraryItems() = preferenceStore.getBoolean("browse_hide_in_library_items", false) + val hideInLibraryItems: Preference = preferenceStore.getBoolean("browse_hide_in_library_items", false) - fun extensionRepos() = preferenceStore.getStringSet("extension_repos", emptySet()) + val extensionRepos: Preference> = preferenceStore.getStringSet("extension_repos", emptySet()) - fun extensionUpdatesCount() = preferenceStore.getInt("ext_updates_count", 0) + val extensionUpdatesCount: Preference = preferenceStore.getInt("ext_updates_count", 0) - fun trustedExtensions() = preferenceStore.getStringSet( + val trustedExtensions: Preference> = preferenceStore.getStringSet( Preference.appStateKey("trusted_extensions"), emptySet(), ) - fun globalSearchFilterState() = preferenceStore.getBoolean( + val globalSearchFilterState: Preference = preferenceStore.getBoolean( Preference.appStateKey("has_filters_toggle_state"), false, ) // SY --> - fun enableSourceBlacklist() = preferenceStore.getBoolean("eh_enable_source_blacklist", true) + val enableSourceBlacklist: Preference = preferenceStore.getBoolean("eh_enable_source_blacklist", true) - fun sourcesTabCategories() = preferenceStore.getStringSet("sources_tab_categories", mutableSetOf()) + val sourcesTabCategories: Preference> = preferenceStore.getStringSet("sources_tab_categories", mutableSetOf()) - fun sourcesTabCategoriesFilter() = preferenceStore.getBoolean("sources_tab_categories_filter", false) + val sourcesTabCategoriesFilter: Preference = preferenceStore.getBoolean("sources_tab_categories_filter", false) - fun sourcesTabSourcesInCategories() = preferenceStore.getStringSet("sources_tab_source_categories", mutableSetOf()) + val sourcesTabSourcesInCategories: Preference> = preferenceStore.getStringSet("sources_tab_source_categories", mutableSetOf()) - fun dataSaver() = preferenceStore.getEnum("data_saver", DataSaver.NONE) + val dataSaver: Preference = preferenceStore.getEnum("data_saver", DataSaver.NONE) - fun dataSaverIgnoreJpeg() = preferenceStore.getBoolean("ignore_jpeg", false) + val dataSaverIgnoreJpeg: Preference = preferenceStore.getBoolean("ignore_jpeg", false) - fun dataSaverIgnoreGif() = preferenceStore.getBoolean("ignore_gif", true) + val dataSaverIgnoreGif: Preference = preferenceStore.getBoolean("ignore_gif", true) - fun dataSaverImageQuality() = preferenceStore.getInt("data_saver_image_quality", 80) + val dataSaverImageQuality: Preference = preferenceStore.getInt("data_saver_image_quality", 80) - fun dataSaverImageFormatJpeg() = preferenceStore.getBoolean("data_saver_image_format_jpeg", false) + val dataSaverImageFormatJpeg: Preference = preferenceStore.getBoolean("data_saver_image_format_jpeg", false) - fun dataSaverServer() = preferenceStore.getString("data_saver_server", "") + val dataSaverServer: Preference = preferenceStore.getString("data_saver_server", "") - fun dataSaverColorBW() = preferenceStore.getBoolean("data_saver_color_bw", false) + val dataSaverColorBW: Preference = preferenceStore.getBoolean("data_saver_color_bw", false) - fun dataSaverExcludedSources() = preferenceStore.getStringSet("data_saver_excluded", emptySet()) + val dataSaverExcludedSources: Preference> = preferenceStore.getStringSet("data_saver_excluded", emptySet()) - fun dataSaverDownloader() = preferenceStore.getBoolean("data_saver_downloader", true) + val dataSaverDownloader: Preference = preferenceStore.getBoolean("data_saver_downloader", true) enum class DataSaver { NONE, @@ -91,32 +97,38 @@ class SourcePreferences( WSRV_NL, } - fun allowLocalSourceHiddenFolders() = preferenceStore.getBoolean("allow_local_source_hidden_folders", false) + val allowLocalSourceHiddenFolders: Preference = preferenceStore.getBoolean("allow_local_source_hidden_folders", false) - fun preferredMangaDexId() = preferenceStore.getString("preferred_mangaDex_id", "0") + val preferredMangaDexId: Preference = preferenceStore.getString("preferred_mangaDex_id", "0") - fun mangadexSyncToLibraryIndexes() = preferenceStore.getStringSet( + val mangadexSyncToLibraryIndexes: Preference> = preferenceStore.getStringSet( "pref_mangadex_sync_to_library_indexes", emptySet(), ) - fun recommendationSearchFlags() = preferenceStore.getInt("rec_search_flags", Int.MAX_VALUE) + val recommendationSearchFlags: Preference = preferenceStore.getInt("rec_search_flags", Int.MAX_VALUE) // SY <-- - fun migrationSources() = preferenceStore.getLongArray("migration_sources", emptyList()) + val migrationSources: Preference> = preferenceStore.getLongArray("migration_sources", emptyList()) - fun migrationFlags() = preferenceStore.getObjectFromInt( + val migrationFlags: Preference> = preferenceStore.getObjectFromInt( key = "migration_flags", defaultValue = MigrationFlag.entries.toSet(), serializer = { MigrationFlag.toBit(it) }, deserializer = { value: Int -> MigrationFlag.fromBit(value) }, ) - fun migrationDeepSearchMode() = preferenceStore.getBoolean("migration_deep_search", false) + val migrationDeepSearchMode: Preference = preferenceStore.getBoolean("migration_deep_search", false) - fun migrationPrioritizeByChapters() = preferenceStore.getBoolean("migration_prioritize_by_chapters", false) + val migrationPrioritizeByChapters: Preference = preferenceStore.getBoolean( + "migration_prioritize_by_chapters", + false, + ) - fun migrationHideUnmatched() = preferenceStore.getBoolean("migration_hide_unmatched", false) + val migrationHideUnmatched: Preference = preferenceStore.getBoolean("migration_hide_unmatched", false) - fun migrationHideWithoutUpdates() = preferenceStore.getBoolean("migration_hide_without_updates", false) + val migrationHideWithoutUpdates: Preference = preferenceStore.getBoolean( + "migration_hide_without_updates", + false, + ) } diff --git a/app/src/main/java/eu/kanade/domain/sync/SyncPreferences.kt b/app/src/main/java/eu/kanade/domain/sync/SyncPreferences.kt index 95d218150..d315f95a5 100644 --- a/app/src/main/java/eu/kanade/domain/sync/SyncPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/sync/SyncPreferences.kt @@ -9,21 +9,21 @@ import java.util.UUID class SyncPreferences( private val preferenceStore: PreferenceStore, ) { - fun clientHost() = preferenceStore.getString("sync_client_host", "https://sync.tachiyomi.org") - fun clientAPIKey() = preferenceStore.getString("sync_client_api_key", "") - fun lastSyncTimestamp() = preferenceStore.getLong(Preference.appStateKey("last_sync_timestamp"), 0L) + val clientHost: Preference = preferenceStore.getString("sync_client_host", "https://sync.tachiyomi.org") + val clientAPIKey: Preference = preferenceStore.getString("sync_client_api_key", "") + val lastSyncTimestamp: Preference = preferenceStore.getLong(Preference.appStateKey("last_sync_timestamp"), 0L) - fun lastSyncEtag() = preferenceStore.getString("sync_etag", "") + val lastSyncEtag: Preference = preferenceStore.getString("sync_etag", "") - fun syncInterval() = preferenceStore.getInt("sync_interval", 0) - fun syncService() = preferenceStore.getInt("sync_service", 0) + val syncInterval: Preference = preferenceStore.getInt("sync_interval", 0) + val syncService: Preference = preferenceStore.getInt("sync_service", 0) - fun googleDriveAccessToken() = preferenceStore.getString( + val googleDriveAccessToken: Preference = preferenceStore.getString( Preference.appStateKey("google_drive_access_token"), "", ) - fun googleDriveRefreshToken() = preferenceStore.getString( + val googleDriveRefreshToken: Preference = preferenceStore.getString( Preference.appStateKey("google_drive_refresh_token"), "", ) @@ -42,7 +42,7 @@ class SyncPreferences( } fun isSyncEnabled(): Boolean { - return syncService().get() != 0 + return syncService.get() != 0 } fun getSyncSettings(): SyncSettings { diff --git a/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt b/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt index e1e9100ce..fbecd2f66 100644 --- a/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/track/service/TrackPreferences.kt @@ -34,17 +34,17 @@ class TrackPreferences( fun trackToken(tracker: Tracker) = preferenceStore.getString(Preference.privateKey("track_token_${tracker.id}"), "") - fun anilistScoreType() = preferenceStore.getString("anilist_score_type", Anilist.POINT_10) + val anilistScoreType: Preference = preferenceStore.getString("anilist_score_type", Anilist.POINT_10) - fun autoUpdateTrack() = preferenceStore.getBoolean("pref_auto_update_manga_sync_key", true) + val autoUpdateTrack: Preference = preferenceStore.getBoolean("pref_auto_update_manga_sync_key", true) - fun autoUpdateTrackOnMarkRead() = preferenceStore.getEnum( + val autoUpdateTrackOnMarkRead: Preference = preferenceStore.getEnum( "pref_auto_update_manga_on_mark_read", AutoTrackState.ALWAYS, ) // SY --> - fun resolveUsingSourceMetadata() = preferenceStore.getBoolean( + val resolveUsingSourceMetadata: Preference = preferenceStore.getBoolean( "pref_resolve_using_source_metadata_key", true, ) diff --git a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt index ec6e99e4e..820d3aa54 100644 --- a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt @@ -6,6 +6,7 @@ import eu.kanade.domain.ui.model.TabletUiMode import eu.kanade.domain.ui.model.ThemeMode import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable +import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore import tachiyomi.core.common.preference.getEnum import java.time.format.DateTimeFormatter @@ -13,10 +14,10 @@ import java.time.format.FormatStyle import java.util.Locale class UiPreferences( - private val preferenceStore: PreferenceStore, + preferenceStore: PreferenceStore, ) { - fun themeMode() = preferenceStore.getEnum( + val themeMode = preferenceStore.getEnum( "pref_theme_mode_key", if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ThemeMode.SYSTEM @@ -25,7 +26,7 @@ class UiPreferences( }, ) - fun appTheme() = preferenceStore.getEnum( + val appTheme: Preference = preferenceStore.getEnum( "pref_app_theme", if (DeviceUtil.isDynamicColorAvailable) { AppTheme.MONET @@ -34,37 +35,37 @@ class UiPreferences( }, ) - fun themeDarkAmoled() = preferenceStore.getBoolean("pref_theme_dark_amoled_key", false) + val themeDarkAmoled: Preference = preferenceStore.getBoolean("pref_theme_dark_amoled_key", false) - fun relativeTime() = preferenceStore.getBoolean("relative_time_v2", true) + val relativeTime: Preference = preferenceStore.getBoolean("relative_time_v2", true) - fun dateFormat() = preferenceStore.getString("app_date_format", "") + val dateFormat: Preference = preferenceStore.getString("app_date_format", "") - fun tabletUiMode() = preferenceStore.getEnum("tablet_ui_mode", TabletUiMode.AUTOMATIC) + val tabletUiMode: Preference = preferenceStore.getEnum("tablet_ui_mode", TabletUiMode.AUTOMATIC) - fun imagesInDescription() = preferenceStore.getBoolean("pref_render_images_description", true) + val imagesInDescription: Preference = preferenceStore.getBoolean("pref_render_images_description", true) // SY --> - fun expandFilters() = preferenceStore.getBoolean("eh_expand_filters", false) + val expandFilters: Preference = preferenceStore.getBoolean("eh_expand_filters", false) - fun hideFeedTab() = preferenceStore.getBoolean("hide_latest_tab", false) + val hideFeedTab: Preference = preferenceStore.getBoolean("hide_latest_tab", false) - fun feedTabInFront() = preferenceStore.getBoolean("latest_tab_position", false) + val feedTabInFront: Preference = preferenceStore.getBoolean("latest_tab_position", false) - fun recommendsInOverflow() = preferenceStore.getBoolean("recommends_in_overflow", false) + val recommendsInOverflow: Preference = preferenceStore.getBoolean("recommends_in_overflow", false) - fun mergeInOverflow() = preferenceStore.getBoolean("merge_in_overflow", true) + val mergeInOverflow: Preference = preferenceStore.getBoolean("merge_in_overflow", true) - fun previewsRowCount() = preferenceStore.getInt("pref_previews_row_count", 4) + val previewsRowCount: Preference = preferenceStore.getInt("pref_previews_row_count", 4) - fun useNewSourceNavigation() = preferenceStore.getBoolean("use_new_source_navigation", true) + val useNewSourceNavigation: Preference = preferenceStore.getBoolean("use_new_source_navigation", true) - fun bottomBarLabels() = preferenceStore.getBoolean("pref_show_bottom_bar_labels", true) + val bottomBarLabels: Preference = preferenceStore.getBoolean("pref_show_bottom_bar_labels", true) - fun showNavUpdates() = preferenceStore.getBoolean("pref_show_updates_button", true) + val showNavUpdates: Preference = preferenceStore.getBoolean("pref_show_updates_button", true) - fun showNavHistory() = preferenceStore.getBoolean("pref_show_history_button", true) + val showNavHistory: Preference = preferenceStore.getBoolean("pref_show_history_button", true) // SY <-- diff --git a/app/src/main/java/eu/kanade/presentation/components/DateText.kt b/app/src/main/java/eu/kanade/presentation/components/DateText.kt index 0e22dcc35..d041695ba 100644 --- a/app/src/main/java/eu/kanade/presentation/components/DateText.kt +++ b/app/src/main/java/eu/kanade/presentation/components/DateText.kt @@ -33,8 +33,8 @@ fun relativeDateText( val context = LocalContext.current val preferences = remember { Injekt.get() } - val relativeTime = remember { preferences.relativeTime().get() } - val dateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat().get()) } + val relativeTime = remember { preferences.relativeTime.get() } + val dateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat.get()) } return localDate?.toRelativeString( context = context, diff --git a/app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt b/app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt index 21e3c895b..7094bab8c 100644 --- a/app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt @@ -100,9 +100,9 @@ fun LibrarySettingsDialog( private fun ColumnScope.FilterPage( screenModel: LibrarySettingsScreenModel, ) { - val filterDownloaded by screenModel.libraryPreferences.filterDownloaded().collectAsState() - val downloadedOnly by screenModel.preferences.downloadedOnly().collectAsState() - val autoUpdateMangaRestrictions by screenModel.libraryPreferences.autoUpdateMangaRestrictions().collectAsState() + val filterDownloaded by screenModel.libraryPreferences.filterDownloaded.collectAsState() + val downloadedOnly by screenModel.preferences.downloadedOnly.collectAsState() + val autoUpdateMangaRestrictions by screenModel.libraryPreferences.autoUpdateMangaRestrictions.collectAsState() TriStateItem( label = stringResource(MR.strings.label_downloaded), @@ -114,25 +114,25 @@ private fun ColumnScope.FilterPage( enabled = !downloadedOnly, onClick = { screenModel.toggleFilter(LibraryPreferences::filterDownloaded) }, ) - val filterUnread by screenModel.libraryPreferences.filterUnread().collectAsState() + val filterUnread by screenModel.libraryPreferences.filterUnread.collectAsState() TriStateItem( label = stringResource(MR.strings.action_filter_unread), state = filterUnread, onClick = { screenModel.toggleFilter(LibraryPreferences::filterUnread) }, ) - val filterStarted by screenModel.libraryPreferences.filterStarted().collectAsState() + val filterStarted by screenModel.libraryPreferences.filterStarted.collectAsState() TriStateItem( label = stringResource(MR.strings.label_started), state = filterStarted, onClick = { screenModel.toggleFilter(LibraryPreferences::filterStarted) }, ) - val filterBookmarked by screenModel.libraryPreferences.filterBookmarked().collectAsState() + val filterBookmarked by screenModel.libraryPreferences.filterBookmarked.collectAsState() TriStateItem( label = stringResource(MR.strings.action_filter_bookmarked), state = filterBookmarked, onClick = { screenModel.toggleFilter(LibraryPreferences::filterBookmarked) }, ) - val filterCompleted by screenModel.libraryPreferences.filterCompleted().collectAsState() + val filterCompleted by screenModel.libraryPreferences.filterCompleted.collectAsState() TriStateItem( label = stringResource(MR.strings.completed), state = filterCompleted, @@ -143,7 +143,7 @@ private fun ColumnScope.FilterPage( (isDevFlavor || isPreviewBuildType) && LibraryPreferences.MANGA_OUTSIDE_RELEASE_PERIOD in autoUpdateMangaRestrictions ) { - val filterIntervalCustom by screenModel.libraryPreferences.filterIntervalCustom().collectAsState() + val filterIntervalCustom by screenModel.libraryPreferences.filterIntervalCustom.collectAsState() TriStateItem( label = stringResource(MR.strings.action_filter_interval_custom), state = filterIntervalCustom, @@ -151,7 +151,7 @@ private fun ColumnScope.FilterPage( ) } // SY --> - val filterLewd by screenModel.libraryPreferences.filterLewd().collectAsState() + val filterLewd by screenModel.libraryPreferences.filterLewd.collectAsState() TriStateItem( label = stringResource(SYMR.strings.lewd), state = filterLewd, @@ -194,7 +194,7 @@ private fun ColumnScope.SortPage( ) { val trackers by screenModel.trackersFlow.collectAsState() // SY --> - val globalSortMode by screenModel.libraryPreferences.sortingMode().collectAsState() + val globalSortMode by screenModel.libraryPreferences.sortingMode.collectAsState() val sortingMode = if (screenModel.grouping == LibraryGroup.BY_DEFAULT) { category.sort.type } else { @@ -206,9 +206,9 @@ private fun ColumnScope.SortPage( !globalSortMode.isAscending } val hasSortTags by remember { - screenModel.libraryPreferences.sortTagsForLibrary().changes() + screenModel.libraryPreferences.sortTagsForLibrary.changes() .map { it.isNotEmpty() } - }.collectAsState(initial = screenModel.libraryPreferences.sortTagsForLibrary().get().isNotEmpty()) + }.collectAsState(initial = screenModel.libraryPreferences.sortTagsForLibrary.get().isNotEmpty()) // SY <-- val options = remember(trackers.isEmpty()/* SY --> */, hasSortTags/* SY <-- */) { @@ -287,7 +287,7 @@ private val displayModes = listOf( private fun ColumnScope.DisplayPage( screenModel: LibrarySettingsScreenModel, ) { - val displayMode by screenModel.libraryPreferences.displayMode().collectAsState() + val displayMode by screenModel.libraryPreferences.displayMode.collectAsState() SettingsChipRow(MR.strings.action_display_mode) { displayModes.map { (titleRes, mode) -> FilterChip( @@ -302,9 +302,9 @@ private fun ColumnScope.DisplayPage( val configuration = LocalConfiguration.current val columnPreference = remember { if (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) { - screenModel.libraryPreferences.landscapeColumns() + screenModel.libraryPreferences.landscapeColumns } else { - screenModel.libraryPreferences.portraitColumns() + screenModel.libraryPreferences.portraitColumns } } @@ -326,33 +326,33 @@ private fun ColumnScope.DisplayPage( HeadingItem(MR.strings.overlay_header) CheckboxItem( label = stringResource(MR.strings.action_display_download_badge), - pref = screenModel.libraryPreferences.downloadBadge(), + pref = screenModel.libraryPreferences.downloadBadge, ) CheckboxItem( label = stringResource(MR.strings.action_display_unread_badge), - pref = screenModel.libraryPreferences.unreadBadge(), + pref = screenModel.libraryPreferences.unreadBadge, ) CheckboxItem( label = stringResource(MR.strings.action_display_local_badge), - pref = screenModel.libraryPreferences.localBadge(), + pref = screenModel.libraryPreferences.localBadge, ) CheckboxItem( label = stringResource(MR.strings.action_display_language_badge), - pref = screenModel.libraryPreferences.languageBadge(), + pref = screenModel.libraryPreferences.languageBadge, ) CheckboxItem( label = stringResource(MR.strings.action_display_show_continue_reading_button), - pref = screenModel.libraryPreferences.showContinueReadingButton(), + pref = screenModel.libraryPreferences.showContinueReadingButton, ) HeadingItem(MR.strings.tabs_header) CheckboxItem( label = stringResource(MR.strings.action_display_show_tabs), - pref = screenModel.libraryPreferences.categoryTabs(), + pref = screenModel.libraryPreferences.categoryTabs, ) CheckboxItem( label = stringResource(MR.strings.action_display_show_number_of_items), - pref = screenModel.libraryPreferences.categoryNumberOfItems(), + pref = screenModel.libraryPreferences.categoryNumberOfItems, ) } diff --git a/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt b/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt index 9af282179..074b5664d 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt @@ -66,7 +66,7 @@ fun ChapterSettingsDialog( ) } - val downloadedOnly = remember { Injekt.get().downloadedOnly().get() } + val downloadedOnly = remember { Injekt.get().downloadedOnly.get() } TabbedDialog( onDismissRequest = onDismissRequest, diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt index dd2774013..74d3b7bba 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt @@ -656,7 +656,7 @@ private fun MangaSummary( modifier: Modifier = Modifier, ) { val preferences = remember { Injekt.get() } - val loadImages = remember { preferences.imagesInDescription().get() } + val loadImages = remember { preferences.imagesInDescription.get() } val animProgress by animateFloatAsState( targetValue = if (expanded) 1f else 0f, label = "summary", diff --git a/app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt b/app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt index b5f8acd1d..31c13a187 100644 --- a/app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt +++ b/app/src/main/java/eu/kanade/presentation/more/onboarding/PermissionStep.kt @@ -122,7 +122,7 @@ internal class PermissionStep : OnboardingStep { color = MaterialTheme.colorScheme.onPrimaryContainer, ) - val crashlyticsPref = privacyPreferences.crashlytics() + val crashlyticsPref = privacyPreferences.crashlytics val crashlytics by crashlyticsPref.collectAsState() PermissionSwitch( title = stringResource(MR.strings.onboarding_permission_crashlytics), @@ -131,7 +131,7 @@ internal class PermissionStep : OnboardingStep { onToggleChange = crashlyticsPref::set, ) - val analyticsPref = privacyPreferences.analytics() + val analyticsPref = privacyPreferences.analytics val analytics by analyticsPref.collectAsState() PermissionSwitch( title = stringResource(MR.strings.onboarding_permission_analytics), diff --git a/app/src/main/java/eu/kanade/presentation/more/onboarding/StorageStep.kt b/app/src/main/java/eu/kanade/presentation/more/onboarding/StorageStep.kt index 4b6409746..0abef4c08 100644 --- a/app/src/main/java/eu/kanade/presentation/more/onboarding/StorageStep.kt +++ b/app/src/main/java/eu/kanade/presentation/more/onboarding/StorageStep.kt @@ -30,7 +30,7 @@ import uy.kohesive.injekt.api.get internal class StorageStep : OnboardingStep { - private val storagePref = Injekt.get().baseStorageDirectory() + private val storagePref = Injekt.get().baseStorageDirectory private var _isComplete by mutableStateOf(false) diff --git a/app/src/main/java/eu/kanade/presentation/more/onboarding/ThemeStep.kt b/app/src/main/java/eu/kanade/presentation/more/onboarding/ThemeStep.kt index dfd7517dc..8fb18a4e8 100644 --- a/app/src/main/java/eu/kanade/presentation/more/onboarding/ThemeStep.kt +++ b/app/src/main/java/eu/kanade/presentation/more/onboarding/ThemeStep.kt @@ -19,13 +19,13 @@ internal class ThemeStep : OnboardingStep { @Composable override fun Content() { - val themeModePref = uiPreferences.themeMode() + val themeModePref = uiPreferences.themeMode val themeMode by themeModePref.collectAsState() - val appThemePref = uiPreferences.appTheme() + val appThemePref = uiPreferences.appTheme val appTheme by appThemePref.collectAsState() - val amoledPref = uiPreferences.themeDarkAmoled() + val amoledPref = uiPreferences.themeDarkAmoled val amoled by amoledPref.collectAsState() Column { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt index 0ab22f6cf..94f93a354 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/ConfigureExhDialog.kt @@ -38,7 +38,7 @@ fun ConfigureExhDialog(run: Boolean, onRunning: () -> Unit) { LaunchedEffect(run) { if (run) { - if (exhPreferences.exhShowSettingsUploadWarning().get()) { + if (exhPreferences.exhShowSettingsUploadWarning.get()) { warnDialogOpen = true } else { configureDialogOpen = true @@ -57,7 +57,7 @@ fun ConfigureExhDialog(run: Boolean, onRunning: () -> Unit) { confirmButton = { TextButton( onClick = { - exhPreferences.exhShowSettingsUploadWarning().set(false) + exhPreferences.exhShowSettingsUploadWarning.set(false) configureDialogOpen = true warnDialogOpen = false }, diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt index b57867e9c..26370d66b 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt @@ -131,7 +131,7 @@ object SettingsAdvancedScreen : SearchableSettings { }, ), /* SY --> Preference.PreferenceItem.SwitchPreference( - preference = networkPreferences.verboseLogging(), + preference = networkPreferences.verboseLogging, title = stringResource(MR.strings.pref_verbose_logging), subtitle = stringResource(MR.strings.pref_verbose_logging_summary), onValueChanged = { @@ -254,7 +254,7 @@ object SettingsAdvancedScreen : SearchableSettings { val context = LocalContext.current val networkHelper = remember { Injekt.get() } - val userAgentPref = networkPreferences.defaultUserAgent() + val userAgentPref = networkPreferences.defaultUserAgent val userAgent by userAgentPref.collectAsState() return Preference.PreferenceGroup( @@ -290,7 +290,7 @@ object SettingsAdvancedScreen : SearchableSettings { }, ), Preference.PreferenceItem.ListPreference( - preference = networkPreferences.dohProvider(), + preference = networkPreferences.dohProvider, entries = persistentMapOf( -1 to stringResource(MR.strings.disabled), PREF_DOH_CLOUDFLARE to "Cloudflare", @@ -371,12 +371,12 @@ object SettingsAdvancedScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - preference = libraryPreferences.updateMangaTitles(), + preference = libraryPreferences.updateMangaTitles, title = stringResource(MR.strings.pref_update_library_manga_titles), subtitle = stringResource(MR.strings.pref_update_library_manga_titles_summary), ), Preference.PreferenceItem.SwitchPreference( - preference = libraryPreferences.disallowNonAsciiFilenames(), + preference = libraryPreferences.disallowNonAsciiFilenames, title = stringResource(MR.strings.pref_disallow_non_ascii_filenames), subtitle = stringResource(MR.strings.pref_disallow_non_ascii_filenames_details), ), @@ -393,7 +393,7 @@ object SettingsAdvancedScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_downloads), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = downloadPreferences.includeChapterUrlHash(), + preference = downloadPreferences.includeChapterUrlHash, title = stringResource(SYMR.strings.pref_include_chapter_url_hash), subtitle = stringResource(SYMR.strings.pref_include_chapter_url_hash_desc), ), @@ -413,14 +413,14 @@ object SettingsAdvancedScreen : SearchableSettings { uri?.let { val flags = Intent.FLAG_GRANT_READ_URI_PERMISSION context.contentResolver.takePersistableUriPermission(uri, flags) - basePreferences.displayProfile().set(uri.toString()) + basePreferences.displayProfile.set(uri.toString()) } } return Preference.PreferenceGroup( title = stringResource(MR.strings.pref_category_reader), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - preference = basePreferences.hardwareBitmapThreshold(), + preference = basePreferences.hardwareBitmapThreshold, entries = GLUtil.CUSTOM_TEXTURE_LIMIT_OPTIONS .mapIndexed { index, option -> val display = if (index == 0) { @@ -440,13 +440,13 @@ object SettingsAdvancedScreen : SearchableSettings { GLUtil.DEVICE_TEXTURE_LIMIT > GLUtil.SAFE_TEXTURE_LIMIT, ), Preference.PreferenceItem.SwitchPreference( - preference = basePreferences.alwaysDecodeLongStripWithSSIV(), + preference = basePreferences.alwaysDecodeLongStripWithSSIV, title = stringResource(MR.strings.pref_always_decode_long_strip_with_ssiv_2), subtitle = stringResource(MR.strings.pref_always_decode_long_strip_with_ssiv_summary), ), Preference.PreferenceItem.TextPreference( title = stringResource(MR.strings.pref_display_profile), - subtitle = basePreferences.displayProfile().get(), + subtitle = basePreferences.displayProfile.get(), onClick = { chooseColorProfile.launch(arrayOf("*/*")) }, @@ -461,7 +461,7 @@ object SettingsAdvancedScreen : SearchableSettings { ): Preference.PreferenceGroup { val context = LocalContext.current val uriHandler = LocalUriHandler.current - val extensionInstallerPref = basePreferences.extensionInstaller() + val extensionInstallerPref = basePreferences.extensionInstaller var shizukuMissing by rememberSaveable { mutableStateOf(false) } val trustExtension = remember { Injekt.get() } @@ -661,12 +661,12 @@ object SettingsAdvancedScreen : SearchableSettings { @Composable private fun getDataSaverGroup(): Preference.PreferenceGroup { val sourcePreferences = remember { Injekt.get() } - val dataSaver by sourcePreferences.dataSaver().collectAsState() + val dataSaver by sourcePreferences.dataSaver.collectAsState() return Preference.PreferenceGroup( title = stringResource(SYMR.strings.data_saver), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - preference = sourcePreferences.dataSaver(), + preference = sourcePreferences.dataSaver, title = stringResource(SYMR.strings.data_saver), subtitle = stringResource(SYMR.strings.data_saver_summary), entries = persistentMapOf( @@ -676,28 +676,28 @@ object SettingsAdvancedScreen : SearchableSettings { ), ), Preference.PreferenceItem.EditTextPreference( - preference = sourcePreferences.dataSaverServer(), + preference = sourcePreferences.dataSaverServer, title = stringResource(SYMR.strings.bandwidth_data_saver_server), subtitle = stringResource(SYMR.strings.data_saver_server_summary), enabled = dataSaver == DataSaver.BANDWIDTH_HERO, ), Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.dataSaverDownloader(), + preference = sourcePreferences.dataSaverDownloader, title = stringResource(SYMR.strings.data_saver_downloader), enabled = dataSaver != DataSaver.NONE, ), Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.dataSaverIgnoreJpeg(), + preference = sourcePreferences.dataSaverIgnoreJpeg, title = stringResource(SYMR.strings.data_saver_ignore_jpeg), enabled = dataSaver != DataSaver.NONE, ), Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.dataSaverIgnoreGif(), + preference = sourcePreferences.dataSaverIgnoreGif, title = stringResource(SYMR.strings.data_saver_ignore_gif), enabled = dataSaver != DataSaver.NONE, ), Preference.PreferenceItem.ListPreference( - preference = sourcePreferences.dataSaverImageQuality(), + preference = sourcePreferences.dataSaverImageQuality, title = stringResource(SYMR.strings.data_saver_image_quality), subtitle = stringResource(SYMR.strings.data_saver_image_quality_summary), entries = listOf( @@ -713,10 +713,10 @@ object SettingsAdvancedScreen : SearchableSettings { enabled = dataSaver != DataSaver.NONE, ), kotlin.run { - val dataSaverImageFormatJpeg by sourcePreferences.dataSaverImageFormatJpeg() + val dataSaverImageFormatJpeg by sourcePreferences.dataSaverImageFormatJpeg .collectAsState() Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.dataSaverImageFormatJpeg(), + preference = sourcePreferences.dataSaverImageFormatJpeg, title = stringResource(SYMR.strings.data_saver_image_format), subtitle = if (dataSaverImageFormatJpeg) { stringResource(SYMR.strings.data_saver_image_format_summary_on) @@ -727,7 +727,7 @@ object SettingsAdvancedScreen : SearchableSettings { ) }, Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.dataSaverColorBW(), + preference = sourcePreferences.dataSaverColorBW, title = stringResource(SYMR.strings.data_saver_color_bw), enabled = dataSaver == DataSaver.BANDWIDTH_HERO, ), @@ -747,7 +747,7 @@ object SettingsAdvancedScreen : SearchableSettings { title = stringResource(SYMR.strings.developer_tools), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.isHentaiEnabled(), + preference = exhPreferences.isHentaiEnabled, title = stringResource(SYMR.strings.toggle_hentai_features), subtitle = stringResource(SYMR.strings.toggle_hentai_features_summary), onValueChanged = { @@ -762,7 +762,7 @@ object SettingsAdvancedScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - preference = delegateSourcePreferences.delegateSources(), + preference = delegateSourcePreferences.delegateSources, title = stringResource(SYMR.strings.toggle_delegated_sources), subtitle = stringResource( SYMR.strings.toggle_delegated_sources_summary, @@ -772,7 +772,7 @@ object SettingsAdvancedScreen : SearchableSettings { ), ), Preference.PreferenceItem.ListPreference( - preference = exhPreferences.logLevel(), + preference = exhPreferences.logLevel, title = stringResource(SYMR.strings.log_level), subtitle = stringResource(SYMR.strings.log_level_summary), entries = EHLogLevel.entries.mapIndexed { index, ehLogLevel -> @@ -782,7 +782,7 @@ object SettingsAdvancedScreen : SearchableSettings { }.toMap().toImmutableMap(), ), Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.enableSourceBlacklist(), + preference = sourcePreferences.enableSourceBlacklist, title = stringResource(SYMR.strings.enable_source_blacklist), subtitle = stringResource( SYMR.strings.enable_source_blacklist_summary, @@ -816,7 +816,7 @@ object SettingsAdvancedScreen : SearchableSettings { TextButton( onClick = { dismiss() - securityPreferences.encryptDatabase().set(true) + securityPreferences.encryptDatabase.set(true) }, ) { Text(text = stringResource(MR.strings.action_ok)) @@ -826,7 +826,7 @@ object SettingsAdvancedScreen : SearchableSettings { } Preference.PreferenceItem.SwitchPreference( title = stringResource(SYMR.strings.encrypt_database), - preference = securityPreferences.encryptDatabase(), + preference = securityPreferences.encryptDatabase, subtitle = stringResource(SYMR.strings.encrypt_database_subtitle), onValueChanged = { if (it) { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt index 8c928da83..10529bdee 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt @@ -56,13 +56,13 @@ object SettingsAppearanceScreen : SearchableSettings { ): Preference.PreferenceGroup { val context = LocalContext.current - val themeModePref = uiPreferences.themeMode() + val themeModePref = uiPreferences.themeMode val themeMode by themeModePref.collectAsState() - val appThemePref = uiPreferences.appTheme() + val appThemePref = uiPreferences.appTheme val appTheme by appThemePref.collectAsState() - val amoledPref = uiPreferences.themeDarkAmoled() + val amoledPref = uiPreferences.themeDarkAmoled val amoled by amoledPref.collectAsState() return Preference.PreferenceGroup( @@ -109,7 +109,7 @@ object SettingsAppearanceScreen : SearchableSettings { val now = remember { LocalDate.now() } - val dateFormat by uiPreferences.dateFormat().collectAsState() + val dateFormat by uiPreferences.dateFormat.collectAsState() val formattedNow = remember(dateFormat) { UiPreferences.dateFormat(dateFormat).format(now) } @@ -122,7 +122,7 @@ object SettingsAppearanceScreen : SearchableSettings { onClick = { navigator.push(AppLanguageScreen()) }, ), Preference.PreferenceItem.ListPreference( - preference = uiPreferences.tabletUiMode(), + preference = uiPreferences.tabletUiMode, entries = TabletUiMode.entries .associateWith { stringResource(it.titleRes) } .toImmutableMap(), @@ -133,7 +133,7 @@ object SettingsAppearanceScreen : SearchableSettings { }, ), Preference.PreferenceItem.ListPreference( - preference = uiPreferences.dateFormat(), + preference = uiPreferences.dateFormat, entries = DateFormats .associateWith { val formattedDate = UiPreferences.dateFormat(it).format(now) @@ -143,7 +143,7 @@ object SettingsAppearanceScreen : SearchableSettings { title = stringResource(MR.strings.pref_date_format), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.relativeTime(), + preference = uiPreferences.relativeTime, title = stringResource(MR.strings.pref_relative_format), subtitle = stringResource( MR.strings.pref_relative_format_summary, @@ -152,7 +152,7 @@ object SettingsAppearanceScreen : SearchableSettings { ), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.imagesInDescription(), + preference = uiPreferences.imagesInDescription, title = stringResource(MR.strings.pref_display_images_description), ), ), @@ -162,22 +162,22 @@ object SettingsAppearanceScreen : SearchableSettings { // SY --> @Composable fun getForkGroup(uiPreferences: UiPreferences): Preference.PreferenceGroup { - val previewsRowCount by uiPreferences.previewsRowCount().collectAsState() + val previewsRowCount by uiPreferences.previewsRowCount.collectAsState() return Preference.PreferenceGroup( stringResource(SYMR.strings.pref_category_fork), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.expandFilters(), + preference = uiPreferences.expandFilters, title = stringResource(SYMR.strings.toggle_expand_search_filters), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.recommendsInOverflow(), + preference = uiPreferences.recommendsInOverflow, title = stringResource(SYMR.strings.put_recommends_in_overflow), subtitle = stringResource(SYMR.strings.put_recommends_in_overflow_summary), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.mergeInOverflow(), + preference = uiPreferences.mergeInOverflow, title = stringResource(SYMR.strings.put_merge_in_overflow), subtitle = stringResource(SYMR.strings.put_merge_in_overflow_summary), ), @@ -195,7 +195,7 @@ object SettingsAppearanceScreen : SearchableSettings { }, valueRange = 0..10, onValueChanged = { - uiPreferences.previewsRowCount().set(it) + uiPreferences.previewsRowCount.set(it) true }, ), @@ -209,15 +209,15 @@ object SettingsAppearanceScreen : SearchableSettings { stringResource(SYMR.strings.pref_category_navbar), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.showNavUpdates(), + preference = uiPreferences.showNavUpdates, title = stringResource(SYMR.strings.pref_hide_updates_button), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.showNavHistory(), + preference = uiPreferences.showNavHistory, title = stringResource(SYMR.strings.pref_hide_history_button), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.bottomBarLabels(), + preference = uiPreferences.bottomBarLabels, title = stringResource(SYMR.strings.pref_show_bottom_bar_labels), ), ), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt index 6f2241940..1572a159f 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt @@ -46,7 +46,7 @@ object SettingsBrowseScreen : SearchableSettings { // SY --> val scope = rememberCoroutineScope() - val hideFeedTab by remember { Injekt.get().hideFeedTab().asState(scope) } + val hideFeedTab by remember { Injekt.get().hideFeedTab.asState(scope) } val uiPreferences = remember { Injekt.get() } // SY <-- return listOf( @@ -55,7 +55,7 @@ object SettingsBrowseScreen : SearchableSettings { title = stringResource(MR.strings.label_sources), preferenceItems = persistentListOf( kotlin.run { - val count by sourcePreferences.sourcesTabCategories().collectAsState() + val count by sourcePreferences.sourcesTabCategories.collectAsState() Preference.PreferenceItem.TextPreference( title = stringResource(MR.strings.action_edit_categories), subtitle = pluralStringResource(MR.plurals.num_categories, count.size, count.size), @@ -65,17 +65,17 @@ object SettingsBrowseScreen : SearchableSettings { ) }, Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.sourcesTabCategoriesFilter(), + preference = sourcePreferences.sourcesTabCategoriesFilter, title = stringResource(SYMR.strings.pref_source_source_filtering), subtitle = stringResource(SYMR.strings.pref_source_source_filtering_summery), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.useNewSourceNavigation(), + preference = uiPreferences.useNewSourceNavigation, title = stringResource(SYMR.strings.pref_source_navigation), subtitle = stringResource(SYMR.strings.pref_source_navigation_summery), ), Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.allowLocalSourceHiddenFolders(), + preference = sourcePreferences.allowLocalSourceHiddenFolders, title = stringResource(SYMR.strings.pref_local_source_hidden_folders), subtitle = stringResource(SYMR.strings.pref_local_source_hidden_folders_summery), ), @@ -85,11 +85,11 @@ object SettingsBrowseScreen : SearchableSettings { title = stringResource(SYMR.strings.feed), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.hideFeedTab(), + preference = uiPreferences.hideFeedTab, title = stringResource(SYMR.strings.pref_hide_feed), ), Preference.PreferenceItem.SwitchPreference( - preference = uiPreferences.feedTabInFront(), + preference = uiPreferences.feedTabInFront, title = stringResource(SYMR.strings.pref_feed_position), subtitle = stringResource(SYMR.strings.pref_feed_position_summery), enabled = hideFeedTab.not(), @@ -101,7 +101,7 @@ object SettingsBrowseScreen : SearchableSettings { title = stringResource(MR.strings.label_sources), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.hideInLibraryItems(), + preference = sourcePreferences.hideInLibraryItems, title = stringResource(MR.strings.pref_hide_in_library_items), ), Preference.PreferenceItem.TextPreference( @@ -117,7 +117,7 @@ object SettingsBrowseScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_nsfw_content), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = sourcePreferences.showNsfwSource(), + preference = sourcePreferences.showNsfwSource, title = stringResource(MR.strings.pref_show_nsfw_source), subtitle = stringResource(MR.strings.requires_app_restart), onValueChanged = { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt index a15c8ea7c..80d4ddd16 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt @@ -119,7 +119,7 @@ object SettingsDataScreen : SearchableSettings { val storagePreferences = Injekt.get() val syncPreferences = remember { Injekt.get() } - val syncService by syncPreferences.syncService().collectAsState() + val syncService by syncPreferences.syncService.collectAsState() return persistentListOf( getStorageLocationPref(storagePreferences = storagePreferences), @@ -185,11 +185,11 @@ object SettingsDataScreen : SearchableSettings { storagePreferences: StoragePreferences, ): Preference.PreferenceItem.TextPreference { val context = LocalContext.current - val pickStorageLocation = storageLocationPicker(storagePreferences.baseStorageDirectory()) + val pickStorageLocation = storageLocationPicker(storagePreferences.baseStorageDirectory) return Preference.PreferenceItem.TextPreference( title = stringResource(MR.strings.pref_storage_location), - subtitle = storageLocationText(storagePreferences.baseStorageDirectory()), + subtitle = storageLocationText(storagePreferences.baseStorageDirectory), onClick = { try { pickStorageLocation.launch(null) @@ -205,7 +205,7 @@ object SettingsDataScreen : SearchableSettings { val context = LocalContext.current val navigator = LocalNavigator.currentOrThrow - val lastAutoBackup by backupPreferences.lastAutoBackupTimestamp().collectAsState() + val lastAutoBackup by backupPreferences.lastAutoBackupTimestamp.collectAsState() val chooseBackup = rememberLauncherForActivityResult( object : ActivityResultContracts.GetContent() { @@ -272,7 +272,7 @@ object SettingsDataScreen : SearchableSettings { // Automatic backups Preference.PreferenceItem.ListPreference( - preference = backupPreferences.backupInterval(), + preference = backupPreferences.backupInterval, entries = persistentMapOf( 0 to stringResource(MR.strings.off), 6 to stringResource(MR.strings.update_6hour), @@ -368,7 +368,7 @@ object SettingsDataScreen : SearchableSettings { ), // SY <-- Preference.PreferenceItem.SwitchPreference( - preference = libraryPreferences.autoClearChapterCache(), + preference = libraryPreferences.autoClearChapterCache, title = stringResource(MR.strings.pref_auto_clear_chapter_cache), ), ), @@ -520,7 +520,7 @@ object SettingsDataScreen : SearchableSettings { title = stringResource(SYMR.strings.pref_sync_service_category), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - preference = syncPreferences.syncService(), + preference = syncPreferences.syncService, title = stringResource(SYMR.strings.pref_sync_service), entries = persistentMapOf( SyncManager.SyncService.NONE.value to stringResource(MR.strings.off), @@ -663,7 +663,7 @@ object SettingsDataScreen : SearchableSettings { val qrScanLauncher = rememberLauncherForActivityResult(ScanContract()) { if (it.contents != null && it.contents.isNotEmpty()) { - syncPreferences.clientAPIKey().set(it.contents) + syncPreferences.clientAPIKey.set(it.contents) } } val context = LocalContext.current @@ -680,13 +680,13 @@ object SettingsDataScreen : SearchableSettings { Preference.PreferenceItem.EditTextPreference( title = stringResource(SYMR.strings.pref_sync_host), subtitle = stringResource(SYMR.strings.pref_sync_host_summ), - preference = syncPreferences.clientHost(), + preference = syncPreferences.clientHost, onValueChanged = { newValue -> scope.launch { // Trim spaces at the beginning and end, then remove trailing slash if present val trimmedValue = newValue.trim() val modifiedValue = trimmedValue.trimEnd { it == '/' } - syncPreferences.clientHost().set(modifiedValue) + syncPreferences.clientHost.set(modifiedValue) } true }, @@ -694,12 +694,12 @@ object SettingsDataScreen : SearchableSettings { Preference.PreferenceItem.CustomPreference( title = stringResource(SYMR.strings.pref_sync_api_key), ) { - val values by syncPreferences.clientAPIKey().collectAsState() + val values by syncPreferences.clientAPIKey.collectAsState() EditTextPreferenceWidget( title = stringResource(SYMR.strings.pref_sync_api_key), subtitle = stringResource(SYMR.strings.pref_sync_api_key_summ), onConfirm = { - syncPreferences.clientAPIKey().set(it) + syncPreferences.clientAPIKey.set(it) true }, icon = null, @@ -755,8 +755,8 @@ object SettingsDataScreen : SearchableSettings { @Composable private fun getAutomaticSyncGroup(syncPreferences: SyncPreferences): Preference.PreferenceGroup { val context = LocalContext.current - val syncIntervalPref = syncPreferences.syncInterval() - val lastSync by syncPreferences.lastSyncTimestamp().collectAsState() + val syncIntervalPref = syncPreferences.syncInterval + val lastSync by syncPreferences.lastSyncTimestamp.collectAsState() return Preference.PreferenceGroup( title = stringResource(SYMR.strings.pref_sync_automatic_category), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt index f66e40e27..17b34e2ef 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt @@ -37,19 +37,19 @@ object SettingsDownloadScreen : SearchableSettings { val allCategories by getCategories.subscribe().collectAsState(initial = emptyList()) val downloadPreferences = remember { Injekt.get() } - val parallelSourceLimit by downloadPreferences.parallelSourceLimit().collectAsState() - val parallelPageLimit by downloadPreferences.parallelPageLimit().collectAsState() + val parallelSourceLimit by downloadPreferences.parallelSourceLimit.collectAsState() + val parallelPageLimit by downloadPreferences.parallelPageLimit.collectAsState() return listOf( Preference.PreferenceItem.SwitchPreference( - preference = downloadPreferences.downloadOnlyOverWifi(), + preference = downloadPreferences.downloadOnlyOverWifi, title = stringResource(MR.strings.connected_to_wifi), ), Preference.PreferenceItem.SwitchPreference( - preference = downloadPreferences.saveChaptersAsCBZ(), + preference = downloadPreferences.saveChaptersAsCBZ, title = stringResource(MR.strings.save_chapter_as_cbz), ), Preference.PreferenceItem.SwitchPreference( - preference = downloadPreferences.splitTallImages(), + preference = downloadPreferences.splitTallImages, title = stringResource(MR.strings.split_tall_images), subtitle = stringResource(MR.strings.split_tall_images_summary), ), @@ -57,14 +57,14 @@ object SettingsDownloadScreen : SearchableSettings { value = parallelSourceLimit, valueRange = 1..10, title = stringResource(MR.strings.pref_download_concurrent_sources), - onValueChanged = { downloadPreferences.parallelSourceLimit().set(it) }, + onValueChanged = { downloadPreferences.parallelSourceLimit.set(it) }, ), Preference.PreferenceItem.SliderPreference( value = parallelPageLimit, valueRange = 1..15, title = stringResource(MR.strings.pref_download_concurrent_pages), subtitle = stringResource(MR.strings.pref_download_concurrent_pages_summary), - onValueChanged = { downloadPreferences.parallelPageLimit().set(it) }, + onValueChanged = { downloadPreferences.parallelPageLimit.set(it) }, ), getDeleteChaptersGroup( downloadPreferences = downloadPreferences, @@ -87,11 +87,11 @@ object SettingsDownloadScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_delete_chapters), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = downloadPreferences.removeAfterMarkedAsRead(), + preference = downloadPreferences.removeAfterMarkedAsRead, title = stringResource(MR.strings.pref_remove_after_marked_as_read), ), Preference.PreferenceItem.ListPreference( - preference = downloadPreferences.removeAfterReadSlots(), + preference = downloadPreferences.removeAfterReadSlots, entries = persistentMapOf( -1 to stringResource(MR.strings.disabled), 0 to stringResource(MR.strings.last_read_chapter), @@ -103,7 +103,7 @@ object SettingsDownloadScreen : SearchableSettings { title = stringResource(MR.strings.pref_remove_after_read), ), Preference.PreferenceItem.SwitchPreference( - preference = downloadPreferences.removeBookmarkedChapters(), + preference = downloadPreferences.removeBookmarkedChapters, title = stringResource(MR.strings.pref_remove_bookmarked_chapters), ), getExcludedCategoriesPreference( @@ -120,7 +120,7 @@ object SettingsDownloadScreen : SearchableSettings { categories: () -> List, ): Preference.PreferenceItem.MultiSelectListPreference { return Preference.PreferenceItem.MultiSelectListPreference( - preference = downloadPreferences.removeExcludeCategories(), + preference = downloadPreferences.removeExcludeCategories, entries = categories() .associate { it.id.toString() to it.visualName } .toImmutableMap(), @@ -133,10 +133,10 @@ object SettingsDownloadScreen : SearchableSettings { downloadPreferences: DownloadPreferences, allCategories: List, ): Preference.PreferenceGroup { - val downloadNewChaptersPref = downloadPreferences.downloadNewChapters() - val downloadNewUnreadChaptersOnlyPref = downloadPreferences.downloadNewUnreadChaptersOnly() - val downloadNewChapterCategoriesPref = downloadPreferences.downloadNewChapterCategories() - val downloadNewChapterCategoriesExcludePref = downloadPreferences.downloadNewChapterCategoriesExclude() + val downloadNewChaptersPref = downloadPreferences.downloadNewChapters + val downloadNewUnreadChaptersOnlyPref = downloadPreferences.downloadNewUnreadChaptersOnly + val downloadNewChapterCategoriesPref = downloadPreferences.downloadNewChapterCategories + val downloadNewChapterCategoriesExcludePref = downloadPreferences.downloadNewChapterCategoriesExclude val downloadNewChapters by downloadNewChaptersPref.collectAsState() @@ -194,7 +194,7 @@ object SettingsDownloadScreen : SearchableSettings { title = stringResource(MR.strings.download_ahead), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - preference = downloadPreferences.autoDownloadWhileReading(), + preference = downloadPreferences.autoDownloadWhileReading, entries = listOf(0, 2, 3, 5, 10) .associateWith { if (it == 0) { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt index 8d3644853..9e884d9f8 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt @@ -88,7 +88,7 @@ object SettingsEhScreen : SearchableSettings { @Composable override fun getTitleRes() = SYMR.strings.pref_category_eh - override fun isEnabled(): Boolean = Injekt.get().isHentaiEnabled().get() + override fun isEnabled(): Boolean = Injekt.get().isHentaiEnabled.get() @Composable fun Reconfigure( @@ -96,14 +96,14 @@ object SettingsEhScreen : SearchableSettings { openWarnConfigureDialogController: () -> Unit, ) { var initialLoadGuard by remember { mutableStateOf(false) } - val useHentaiAtHome by exhPreferences.useHentaiAtHome().collectAsState() - val useJapaneseTitle by exhPreferences.useJapaneseTitle().collectAsState() - val useOriginalImages by exhPreferences.exhUseOriginalImages().collectAsState() - val ehTagFilterValue by exhPreferences.ehTagFilterValue().collectAsState() - val ehTagWatchingValue by exhPreferences.ehTagWatchingValue().collectAsState() - val settingsLanguages by exhPreferences.exhSettingsLanguages().collectAsState() - val enabledCategories by exhPreferences.exhEnabledCategories().collectAsState() - val imageQuality by exhPreferences.imageQuality().collectAsState() + val useHentaiAtHome by exhPreferences.useHentaiAtHome.collectAsState() + val useJapaneseTitle by exhPreferences.useJapaneseTitle.collectAsState() + val useOriginalImages by exhPreferences.exhUseOriginalImages.collectAsState() + val ehTagFilterValue by exhPreferences.ehTagFilterValue.collectAsState() + val ehTagWatchingValue by exhPreferences.ehTagWatchingValue.collectAsState() + val settingsLanguages by exhPreferences.exhSettingsLanguages.collectAsState() + val enabledCategories by exhPreferences.exhEnabledCategories.collectAsState() + val imageQuality by exhPreferences.imageQuality.collectAsState() DisposableEffect( useHentaiAtHome, useJapaneseTitle, @@ -128,7 +128,7 @@ object SettingsEhScreen : SearchableSettings { val getFlatMetadataById: GetFlatMetadataById = remember { Injekt.get() } val deleteFavoriteEntries: DeleteFavoriteEntries = remember { Injekt.get() } val getExhFavoriteMangaWithMetadata: GetExhFavoriteMangaWithMetadata = remember { Injekt.get() } - val exhentaiEnabled by exhPreferences.enableExhentai().collectAsState() + val exhentaiEnabled by exhPreferences.enableExhentai.collectAsState() var runConfigureDialog by remember { mutableStateOf(false) } val openWarnConfigureDialogController = { runConfigureDialog = true } @@ -191,9 +191,9 @@ object SettingsEhScreen : SearchableSettings { } } val context = LocalContext.current - val value by exhPreferences.enableExhentai().collectAsState() + val value by exhPreferences.enableExhentai.collectAsState() return Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.enableExhentai(), + preference = exhPreferences.enableExhentai, title = stringResource(SYMR.strings.enable_exhentai), subtitle = if (!value) { stringResource(SYMR.strings.requires_login) @@ -202,7 +202,7 @@ object SettingsEhScreen : SearchableSettings { }, onValueChanged = { newVal -> if (!newVal) { - exhPreferences.enableExhentai().set(false) + exhPreferences.enableExhentai.set(false) true } else { activityResultContract.launch(EhLoginActivity.newIntent(context)) @@ -218,7 +218,7 @@ object SettingsEhScreen : SearchableSettings { exhPreferences: ExhPreferences, ): Preference.PreferenceItem.ListPreference { return Preference.PreferenceItem.ListPreference( - preference = exhPreferences.useHentaiAtHome(), + preference = exhPreferences.useHentaiAtHome, title = stringResource(SYMR.strings.use_hentai_at_home), subtitle = stringResource(SYMR.strings.use_hentai_at_home_summary), entries = persistentMapOf( @@ -234,9 +234,9 @@ object SettingsEhScreen : SearchableSettings { exhentaiEnabled: Boolean, exhPreferences: ExhPreferences, ): Preference.PreferenceItem.SwitchPreference { - val value by exhPreferences.useJapaneseTitle().collectAsState() + val value by exhPreferences.useJapaneseTitle.collectAsState() return Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.useJapaneseTitle(), + preference = exhPreferences.useJapaneseTitle, title = stringResource(SYMR.strings.show_japanese_titles), subtitle = if (value) { stringResource(SYMR.strings.show_japanese_titles_option_1) @@ -252,9 +252,9 @@ object SettingsEhScreen : SearchableSettings { exhentaiEnabled: Boolean, exhPreferences: ExhPreferences, ): Preference.PreferenceItem.SwitchPreference { - val value by exhPreferences.exhUseOriginalImages().collectAsState() + val value by exhPreferences.exhUseOriginalImages.collectAsState() return Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.exhUseOriginalImages(), + preference = exhPreferences.exhUseOriginalImages, title = stringResource(SYMR.strings.use_original_images), subtitle = if (value) { stringResource(SYMR.strings.use_original_images_on) @@ -353,7 +353,7 @@ object SettingsEhScreen : SearchableSettings { exhentaiEnabled: Boolean, exhPreferences: ExhPreferences, ): Preference.PreferenceItem.TextPreference { - val value by exhPreferences.ehTagFilterValue().collectAsState() + val value by exhPreferences.ehTagFilterValue.collectAsState() var dialogOpen by remember { mutableStateOf(false) } if (dialogOpen) { TagThresholdDialog( @@ -364,7 +364,7 @@ object SettingsEhScreen : SearchableSettings { outsideRangeError = stringResource(SYMR.strings.tag_filtering_threshhold_error), onValueChange = { dialogOpen = false - exhPreferences.ehTagFilterValue().set(it) + exhPreferences.ehTagFilterValue.set(it) }, ) } @@ -383,7 +383,7 @@ object SettingsEhScreen : SearchableSettings { exhentaiEnabled: Boolean, exhPreferences: ExhPreferences, ): Preference.PreferenceItem.TextPreference { - val value by exhPreferences.ehTagWatchingValue().collectAsState() + val value by exhPreferences.ehTagWatchingValue.collectAsState() var dialogOpen by remember { mutableStateOf(false) } if (dialogOpen) { TagThresholdDialog( @@ -394,7 +394,7 @@ object SettingsEhScreen : SearchableSettings { outsideRangeError = stringResource(SYMR.strings.tag_watching_threshhold_error), onValueChange = { dialogOpen = false - exhPreferences.ehTagWatchingValue().set(it) + exhPreferences.ehTagWatchingValue.set(it) }, ) } @@ -606,7 +606,7 @@ object SettingsEhScreen : SearchableSettings { exhentaiEnabled: Boolean, exhPreferences: ExhPreferences, ): Preference.PreferenceItem.TextPreference { - val value by exhPreferences.exhSettingsLanguages().collectAsState() + val value by exhPreferences.exhSettingsLanguages.collectAsState() var dialogOpen by remember { mutableStateOf(false) } if (dialogOpen) { LanguagesDialog( @@ -614,7 +614,7 @@ object SettingsEhScreen : SearchableSettings { initialValue = value, onValueChange = { dialogOpen = false - exhPreferences.exhSettingsLanguages().set(it) + exhPreferences.exhSettingsLanguages.set(it) }, ) } @@ -772,7 +772,7 @@ object SettingsEhScreen : SearchableSettings { exhentaiEnabled: Boolean, exhPreferences: ExhPreferences, ): Preference.PreferenceItem.TextPreference { - val value by exhPreferences.exhEnabledCategories().collectAsState() + val value by exhPreferences.exhEnabledCategories.collectAsState() var dialogOpen by remember { mutableStateOf(false) } if (dialogOpen) { FrontPageCategoriesDialog( @@ -780,7 +780,7 @@ object SettingsEhScreen : SearchableSettings { initialValue = value, onValueChange = { dialogOpen = false - exhPreferences.exhEnabledCategories().set(it) + exhPreferences.exhEnabledCategories.set(it) }, ) } @@ -800,7 +800,7 @@ object SettingsEhScreen : SearchableSettings { exhPreferences: ExhPreferences, ): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.exhWatchedListDefaultState(), + preference = exhPreferences.exhWatchedListDefaultState, title = stringResource(SYMR.strings.watched_list_default), subtitle = stringResource(SYMR.strings.watched_list_state_summary), enabled = exhentaiEnabled, @@ -813,7 +813,7 @@ object SettingsEhScreen : SearchableSettings { exhPreferences: ExhPreferences, ): Preference.PreferenceItem.ListPreference { return Preference.PreferenceItem.ListPreference( - preference = exhPreferences.imageQuality(), + preference = exhPreferences.imageQuality, title = stringResource(SYMR.strings.eh_image_quality_summary), subtitle = stringResource(SYMR.strings.eh_image_quality), entries = persistentMapOf( @@ -831,7 +831,7 @@ object SettingsEhScreen : SearchableSettings { @Composable fun enhancedEhentaiView(exhPreferences: ExhPreferences): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.enhancedEHentaiView(), + preference = exhPreferences.enhancedEHentaiView, title = stringResource(SYMR.strings.pref_enhanced_e_hentai_view), subtitle = stringResource(SYMR.strings.pref_enhanced_e_hentai_view_summary), ) @@ -840,7 +840,7 @@ object SettingsEhScreen : SearchableSettings { @Composable fun readOnlySync(exhPreferences: ExhPreferences): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.exhReadOnlySync(), + preference = exhPreferences.exhReadOnlySync, title = stringResource(SYMR.strings.disable_favorites_uploading), subtitle = stringResource(SYMR.strings.disable_favorites_uploading_summary), ) @@ -865,7 +865,7 @@ object SettingsEhScreen : SearchableSettings { @Composable fun lenientSync(exhPreferences: ExhPreferences): Preference.PreferenceItem.SwitchPreference { return Preference.PreferenceItem.SwitchPreference( - preference = exhPreferences.exhLenientSync(), + preference = exhPreferences.exhLenientSync, title = stringResource(SYMR.strings.ignore_sync_errors), subtitle = stringResource(SYMR.strings.ignore_sync_errors_summary), ) @@ -937,10 +937,10 @@ object SettingsEhScreen : SearchableSettings { fun updateCheckerFrequency( exhPreferences: ExhPreferences, ): Preference.PreferenceItem.ListPreference { - val value by exhPreferences.exhAutoUpdateFrequency().collectAsState() + val value by exhPreferences.exhAutoUpdateFrequency.collectAsState() val context = LocalContext.current return Preference.PreferenceItem.ListPreference( - preference = exhPreferences.exhAutoUpdateFrequency(), + preference = exhPreferences.exhAutoUpdateFrequency, title = stringResource(SYMR.strings.time_between_batches), subtitle = if (value == 0) { stringResource(SYMR.strings.time_between_batches_summary_1, stringResource(MR.strings.app_name)) @@ -973,10 +973,10 @@ object SettingsEhScreen : SearchableSettings { fun autoUpdateRequirements( exhPreferences: ExhPreferences, ): Preference.PreferenceItem.MultiSelectListPreference { - val value by exhPreferences.exhAutoUpdateRequirements().collectAsState() + val value by exhPreferences.exhAutoUpdateRequirements.collectAsState() val context = LocalContext.current return Preference.PreferenceItem.MultiSelectListPreference( - preference = exhPreferences.exhAutoUpdateRequirements(), + preference = exhPreferences.exhAutoUpdateRequirements, title = stringResource(SYMR.strings.auto_update_restrictions), subtitle = remember(value) { context.stringResource( @@ -1150,7 +1150,7 @@ object SettingsEhScreen : SearchableSettings { value = withIOContext { try { val stats = - exhPreferences.exhAutoUpdateStats().get().nullIfBlank()?.let { + exhPreferences.exhAutoUpdateStats.get().nullIfBlank()?.let { Json.decodeFromString(it) } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt index 461c975a7..ce34fd5ab 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt @@ -79,7 +79,7 @@ object SettingsLibraryScreen : SearchableSettings { val userCategoriesCount = allCategories.filterNot(Category::isSystemCategory).size // For default category - val ids = listOf(libraryPreferences.defaultCategory().defaultValue()) + + val ids = listOf(libraryPreferences.defaultCategory.defaultValue()) + allCategories.fastMap { it.id.toInt() } val labels = listOf(stringResource(MR.strings.default_category_summary)) + allCategories.fastMap { it.visualName } @@ -97,12 +97,12 @@ object SettingsLibraryScreen : SearchableSettings { onClick = { navigator.push(CategoryScreen()) }, ), Preference.PreferenceItem.ListPreference( - preference = libraryPreferences.defaultCategory(), + preference = libraryPreferences.defaultCategory, entries = ids.zip(labels).toMap().toImmutableMap(), title = stringResource(MR.strings.default_category), ), Preference.PreferenceItem.SwitchPreference( - preference = libraryPreferences.categorizedDisplaySettings(), + preference = libraryPreferences.categorizedDisplaySettings, title = stringResource(MR.strings.categorized_display_settings), onValueChanged = { if (!it) { @@ -124,9 +124,9 @@ object SettingsLibraryScreen : SearchableSettings { ): Preference.PreferenceGroup { val context = LocalContext.current - val autoUpdateIntervalPref = libraryPreferences.autoUpdateInterval() - val autoUpdateCategoriesPref = libraryPreferences.updateCategories() - val autoUpdateCategoriesExcludePref = libraryPreferences.updateCategoriesExclude() + val autoUpdateIntervalPref = libraryPreferences.autoUpdateInterval + val autoUpdateCategoriesPref = libraryPreferences.updateCategories + val autoUpdateCategoriesExcludePref = libraryPreferences.updateCategoriesExclude val autoUpdateInterval by autoUpdateIntervalPref.collectAsState() @@ -170,7 +170,7 @@ object SettingsLibraryScreen : SearchableSettings { }, ), Preference.PreferenceItem.MultiSelectListPreference( - preference = libraryPreferences.autoUpdateDeviceRestrictions(), + preference = libraryPreferences.autoUpdateDeviceRestrictions, entries = persistentMapOf( DEVICE_ONLY_ON_WIFI to stringResource(MR.strings.connected_to_wifi), DEVICE_NETWORK_NOT_METERED to stringResource(MR.strings.network_not_metered), @@ -196,7 +196,7 @@ object SettingsLibraryScreen : SearchableSettings { ), // SY --> Preference.PreferenceItem.ListPreference( - preference = libraryPreferences.groupLibraryUpdateType(), + preference = libraryPreferences.groupLibraryUpdateType, title = stringResource(SYMR.strings.library_group_updates), entries = persistentMapOf( GroupLibraryMode.GLOBAL to stringResource(SYMR.strings.library_group_updates_global), @@ -207,12 +207,12 @@ object SettingsLibraryScreen : SearchableSettings { ), // SY <-- Preference.PreferenceItem.SwitchPreference( - preference = libraryPreferences.autoUpdateMetadata(), + preference = libraryPreferences.autoUpdateMetadata, title = stringResource(MR.strings.pref_library_update_refresh_metadata), subtitle = stringResource(MR.strings.pref_library_update_refresh_metadata_summary), ), Preference.PreferenceItem.MultiSelectListPreference( - preference = libraryPreferences.autoUpdateMangaRestrictions(), + preference = libraryPreferences.autoUpdateMangaRestrictions, entries = persistentMapOf( MANGA_HAS_UNREAD to stringResource(MR.strings.pref_update_only_completely_read), MANGA_NON_READ to stringResource(MR.strings.pref_update_only_started), @@ -222,7 +222,7 @@ object SettingsLibraryScreen : SearchableSettings { title = stringResource(MR.strings.pref_library_update_smart_update), ), Preference.PreferenceItem.SwitchPreference( - preference = libraryPreferences.newShowUpdatesCount(), + preference = libraryPreferences.newShowUpdatesCount, title = stringResource(MR.strings.pref_library_update_show_tab_badge), ), ), @@ -237,7 +237,7 @@ object SettingsLibraryScreen : SearchableSettings { title = stringResource(MR.strings.pref_behavior), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - preference = libraryPreferences.swipeToStartAction(), + preference = libraryPreferences.swipeToStartAction, entries = persistentMapOf( LibraryPreferences.ChapterSwipeAction.Disabled to stringResource(MR.strings.disabled), @@ -251,7 +251,7 @@ object SettingsLibraryScreen : SearchableSettings { title = stringResource(MR.strings.pref_chapter_swipe_start), ), Preference.PreferenceItem.ListPreference( - preference = libraryPreferences.swipeToEndAction(), + preference = libraryPreferences.swipeToEndAction, entries = persistentMapOf( LibraryPreferences.ChapterSwipeAction.Disabled to stringResource(MR.strings.disabled), @@ -265,7 +265,7 @@ object SettingsLibraryScreen : SearchableSettings { title = stringResource(MR.strings.pref_chapter_swipe_end), ), Preference.PreferenceItem.MultiSelectListPreference( - preference = libraryPreferences.markDuplicateReadChapterAsRead(), + preference = libraryPreferences.markDuplicateReadChapterAsRead, entries = persistentMapOf( MARK_DUPLICATE_CHAPTER_READ_EXISTING to stringResource(MR.strings.pref_mark_duplicate_read_chapter_read_existing), @@ -281,7 +281,7 @@ object SettingsLibraryScreen : SearchableSettings { // SY --> @Composable fun getSortingCategory(navigator: Navigator, libraryPreferences: LibraryPreferences): Preference.PreferenceGroup { - val tagCount by libraryPreferences.sortTagsForLibrary().collectAsState() + val tagCount by libraryPreferences.sortTagsForLibrary.collectAsState() return Preference.PreferenceGroup( stringResource(SYMR.strings.pref_sorting_settings), preferenceItems = persistentListOf( diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt index b18163a36..2da2a0423 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt @@ -175,7 +175,7 @@ object SettingsMangadexScreen : SearchableSettings { sourcePreferences: SourcePreferences, ): Preference.PreferenceItem.ListPreference { return Preference.PreferenceItem.ListPreference( - preference = sourcePreferences.preferredMangaDexId(), + preference = sourcePreferences.preferredMangaDexId, title = stringResource(SYMR.strings.mangadex_preffered_source), subtitle = stringResource(SYMR.strings.mangadex_preffered_source_summary), entries = MdUtil.getEnabledMangaDexs(sourcePreferences) @@ -255,7 +255,7 @@ object SettingsMangadexScreen : SearchableSettings { onDismissRequest = { dialogOpen = false }, onSelectionConfirmed = { items -> dialogOpen = false - sourcePreferences.mangadexSyncToLibraryIndexes().set( + sourcePreferences.mangadexSyncToLibraryIndexes.set( List(items.size) { index -> (index + 1).toString() }.toSet(), ) LibraryUpdateJob.startNow( diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt index 096825e8d..ef32266ff 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt @@ -34,19 +34,19 @@ object SettingsReaderScreen : SearchableSettings { override fun getPreferences(): List { val readerPref = remember { Injekt.get() } // SY --> - val forceHorizontalSeekbar by readerPref.forceHorizontalSeekbar().collectAsState() + val forceHorizontalSeekbar by readerPref.forceHorizontalSeekbar.collectAsState() // SY <-- return listOf( Preference.PreferenceItem.ListPreference( - preference = readerPref.defaultReadingMode(), + preference = readerPref.defaultReadingMode, entries = ReadingMode.entries.drop(1) .associate { it.flagValue to stringResource(it.stringRes) } .toImmutableMap(), title = stringResource(MR.strings.pref_viewer_type), ), Preference.PreferenceItem.ListPreference( - preference = readerPref.doubleTapAnimSpeed(), + preference = readerPref.doubleTapAnimSpeed, entries = persistentMapOf( 1 to stringResource(MR.strings.double_tap_anim_speed_0), 500 to stringResource(MR.strings.double_tap_anim_speed_normal), @@ -55,29 +55,29 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_double_tap_anim_speed), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPref.showReadingMode(), + preference = readerPref.showReadingMode, title = stringResource(MR.strings.pref_show_reading_mode), subtitle = stringResource(MR.strings.pref_show_reading_mode_summary), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPref.showNavigationOverlayOnStart(), + preference = readerPref.showNavigationOverlayOnStart, title = stringResource(MR.strings.pref_show_navigation_mode), subtitle = stringResource(MR.strings.pref_show_navigation_mode_summary), ), // SY --> Preference.PreferenceItem.SwitchPreference( - preference = readerPref.forceHorizontalSeekbar(), + preference = readerPref.forceHorizontalSeekbar, title = stringResource(SYMR.strings.pref_force_horz_seekbar), subtitle = stringResource(SYMR.strings.pref_force_horz_seekbar_summary), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPref.landscapeVerticalSeekbar(), + preference = readerPref.landscapeVerticalSeekbar, title = stringResource(SYMR.strings.pref_show_vert_seekbar_landscape), subtitle = stringResource(SYMR.strings.pref_show_vert_seekbar_landscape_summary), enabled = !forceHorizontalSeekbar, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPref.leftVerticalSeekbar(), + preference = readerPref.leftVerticalSeekbar, title = stringResource(SYMR.strings.pref_left_handed_vertical_seekbar), subtitle = stringResource(SYMR.strings.pref_left_handed_vertical_seekbar_summary), enabled = !forceHorizontalSeekbar, @@ -85,7 +85,7 @@ object SettingsReaderScreen : SearchableSettings { // SY <-- /* SY --> Preference.PreferenceItem.SwitchPreference( - preference = readerPref.pageTransitions(), + preference = readerPref.pageTransitions, title = stringResource(MR.strings.pref_page_transitions), ), SY <-- */ @@ -108,20 +108,20 @@ object SettingsReaderScreen : SearchableSettings { @Composable private fun getDisplayGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup { - val fullscreenPref = readerPreferences.fullscreen() + val fullscreenPref = readerPreferences.fullscreen val fullscreen by fullscreenPref.collectAsState() return Preference.PreferenceGroup( title = stringResource(MR.strings.pref_category_display), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - preference = readerPreferences.defaultOrientationType(), + preference = readerPreferences.defaultOrientationType, entries = ReaderOrientation.entries.drop(1) .associate { it.flagValue to stringResource(it.stringRes) } .toImmutableMap(), title = stringResource(MR.strings.pref_rotation_type), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.readerTheme(), + preference = readerPreferences.readerTheme, entries = persistentMapOf( 1 to stringResource(MR.strings.black_background), 2 to stringResource(MR.strings.gray_background), @@ -135,16 +135,16 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_fullscreen), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.drawUnderCutout(), + preference = readerPreferences.drawUnderCutout, title = stringResource(MR.strings.pref_cutout_short), enabled = LocalView.current.hasDisplayCutout() && fullscreen, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.keepScreenOn(), + preference = readerPreferences.keepScreenOn, title = stringResource(MR.strings.pref_keep_screen_on), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.showPageNumber(), + preference = readerPreferences.showPageNumber, title = stringResource(MR.strings.pref_show_page_number), ), ), @@ -153,21 +153,21 @@ object SettingsReaderScreen : SearchableSettings { @Composable private fun getEInkGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup { - val flashPageState by readerPreferences.flashOnPageChange().collectAsState() + val flashPageState by readerPreferences.flashOnPageChange.collectAsState() - val flashMillisPref = readerPreferences.flashDurationMillis() + val flashMillisPref = readerPreferences.flashDurationMillis val flashMillis by flashMillisPref.collectAsState() - val flashIntervalPref = readerPreferences.flashPageInterval() + val flashIntervalPref = readerPreferences.flashPageInterval val flashInterval by flashIntervalPref.collectAsState() - val flashColorPref = readerPreferences.flashColor() + val flashColorPref = readerPreferences.flashColor return Preference.PreferenceGroup( title = "E-Ink", preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.flashOnPageChange(), + preference = readerPreferences.flashOnPageChange, title = stringResource(MR.strings.pref_flash_page), subtitle = stringResource(MR.strings.pref_flash_page_summ), ), @@ -208,19 +208,19 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_category_reading), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.skipRead(), + preference = readerPreferences.skipRead, title = stringResource(MR.strings.pref_skip_read_chapters), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.skipFiltered(), + preference = readerPreferences.skipFiltered, title = stringResource(MR.strings.pref_skip_filtered_chapters), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.skipDupe(), + preference = readerPreferences.skipDupe, title = stringResource(MR.strings.pref_skip_dupe_chapters), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.alwaysShowChapterTransition(), + preference = readerPreferences.alwaysShowChapterTransition, title = stringResource(MR.strings.pref_always_show_chapter_transition), ), ), @@ -229,10 +229,10 @@ object SettingsReaderScreen : SearchableSettings { @Composable private fun getPagedGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup { - val navModePref = readerPreferences.navigationModePager() - val imageScaleTypePref = readerPreferences.imageScaleType() - val dualPageSplitPref = readerPreferences.dualPageSplitPaged() - val rotateToFitPref = readerPreferences.dualPageRotateToFit() + val navModePref = readerPreferences.navigationModePager + val imageScaleTypePref = readerPreferences.imageScaleType + val dualPageSplitPref = readerPreferences.dualPageSplitPaged + val rotateToFitPref = readerPreferences.dualPageRotateToFit val navMode by navModePref.collectAsState() val imageScaleType by imageScaleTypePref.collectAsState() @@ -251,7 +251,7 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_viewer_nav), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.pagerNavInverted(), + preference = readerPreferences.pagerNavInverted, entries = persistentListOf( ReaderPreferences.TappingInvertMode.NONE, ReaderPreferences.TappingInvertMode.HORIZONTAL, @@ -272,7 +272,7 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_image_scale_type), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.zoomStart(), + preference = readerPreferences.zoomStart, entries = ReaderPreferences.ZoomStart .mapIndexed { index, it -> index + 1 to stringResource(it) } .toMap() @@ -280,22 +280,22 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_zoom_start), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.cropBorders(), + preference = readerPreferences.cropBorders, title = stringResource(MR.strings.pref_crop_borders), ), // SY --> Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.pageTransitionsPager(), + preference = readerPreferences.pageTransitionsPager, title = stringResource(MR.strings.pref_page_transitions), ), // SY <-- Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.landscapeZoom(), + preference = readerPreferences.landscapeZoom, title = stringResource(MR.strings.pref_landscape_zoom), enabled = imageScaleType == 1, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.navigateToPan(), + preference = readerPreferences.navigateToPan, title = stringResource(MR.strings.pref_navigate_pan), enabled = navMode != 5, ), @@ -308,7 +308,7 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.dualPageInvertPaged(), + preference = readerPreferences.dualPageInvertPaged, title = stringResource(MR.strings.pref_dual_page_invert), subtitle = stringResource(MR.strings.pref_dual_page_invert_summary), enabled = dualPageSplit, @@ -322,7 +322,7 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.dualPageRotateToFitInvert(), + preference = readerPreferences.dualPageRotateToFitInvert, title = stringResource(MR.strings.pref_page_rotate_invert), enabled = rotateToFit, ), @@ -334,10 +334,10 @@ object SettingsReaderScreen : SearchableSettings { private fun getWebtoonGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup { val numberFormat = remember { NumberFormat.getPercentInstance() } - val navModePref = readerPreferences.navigationModeWebtoon() - val dualPageSplitPref = readerPreferences.dualPageSplitWebtoon() - val rotateToFitPref = readerPreferences.dualPageRotateToFitWebtoon() - val webtoonSidePaddingPref = readerPreferences.webtoonSidePadding() + val navModePref = readerPreferences.navigationModeWebtoon + val dualPageSplitPref = readerPreferences.dualPageSplitWebtoon + val rotateToFitPref = readerPreferences.dualPageRotateToFitWebtoon + val webtoonSidePaddingPref = readerPreferences.webtoonSidePadding val navMode by navModePref.collectAsState() val dualPageSplit by dualPageSplitPref.collectAsState() @@ -356,7 +356,7 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_viewer_nav), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.webtoonNavInverted(), + preference = readerPreferences.webtoonNavInverted, entries = persistentListOf( ReaderPreferences.TappingInvertMode.NONE, ReaderPreferences.TappingInvertMode.HORIZONTAL, @@ -378,7 +378,7 @@ object SettingsReaderScreen : SearchableSettings { onValueChanged = { webtoonSidePaddingPref.set(it) }, ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.readerHideThreshold(), + preference = readerPreferences.readerHideThreshold, entries = persistentMapOf( ReaderPreferences.ReaderHideThreshold.HIGHEST to stringResource(MR.strings.pref_highest), ReaderPreferences.ReaderHideThreshold.HIGH to stringResource(MR.strings.pref_high), @@ -388,7 +388,7 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_hide_threshold), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.cropBordersWebtoon(), + preference = readerPreferences.cropBordersWebtoon, title = stringResource(MR.strings.pref_crop_borders), ), Preference.PreferenceItem.SwitchPreference( @@ -400,7 +400,7 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.dualPageInvertWebtoon(), + preference = readerPreferences.dualPageInvertWebtoon, title = stringResource(MR.strings.pref_dual_page_invert), subtitle = stringResource(MR.strings.pref_dual_page_invert_summary), enabled = dualPageSplit, @@ -414,21 +414,21 @@ object SettingsReaderScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.dualPageRotateToFitInvertWebtoon(), + preference = readerPreferences.dualPageRotateToFitInvertWebtoon, title = stringResource(MR.strings.pref_page_rotate_invert), enabled = rotateToFit, ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.webtoonDoubleTapZoomEnabled(), + preference = readerPreferences.webtoonDoubleTapZoomEnabled, title = stringResource(MR.strings.pref_double_tap_zoom), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.webtoonDisableZoomOut(), + preference = readerPreferences.webtoonDisableZoomOut, title = stringResource(MR.strings.pref_webtoon_disable_zoom_out), ), // SY --> Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.pageTransitionsWebtoon(), + preference = readerPreferences.pageTransitionsWebtoon, title = stringResource(MR.strings.pref_page_transitions), ), // SY <-- @@ -443,12 +443,12 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.vertical_plus_viewer), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.continuousVerticalTappingByPage(), + preference = readerPreferences.continuousVerticalTappingByPage, title = stringResource(SYMR.strings.tap_scroll_page), subtitle = stringResource(SYMR.strings.tap_scroll_page_summary), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.cropBordersContinuousVertical(), + preference = readerPreferences.cropBordersContinuousVertical, title = stringResource(MR.strings.pref_crop_borders), ), ), @@ -458,7 +458,7 @@ object SettingsReaderScreen : SearchableSettings { @Composable private fun getNavigationGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup { - val readWithVolumeKeysPref = readerPreferences.readWithVolumeKeys() + val readWithVolumeKeysPref = readerPreferences.readWithVolumeKeys val readWithVolumeKeys by readWithVolumeKeysPref.collectAsState() return Preference.PreferenceGroup( title = stringResource(MR.strings.pref_reader_navigation), @@ -468,7 +468,7 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_read_with_volume_keys), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.readWithVolumeKeysInverted(), + preference = readerPreferences.readWithVolumeKeysInverted, title = stringResource(MR.strings.pref_read_with_volume_keys_inverted), enabled = readWithVolumeKeys, ), @@ -482,11 +482,11 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(MR.strings.pref_reader_actions), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.readWithLongTap(), + preference = readerPreferences.readWithLongTap, title = stringResource(MR.strings.pref_read_with_long_tap), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.folderPerManga(), + preference = readerPreferences.folderPerManga, title = stringResource(MR.strings.pref_create_folder_per_manga), subtitle = stringResource(MR.strings.pref_create_folder_per_manga_summary), ), @@ -501,7 +501,7 @@ object SettingsReaderScreen : SearchableSettings { title = stringResource(SYMR.strings.page_downloading), preferenceItems = persistentListOf( Preference.PreferenceItem.ListPreference( - preference = readerPreferences.preloadSize(), + preference = readerPreferences.preloadSize, title = stringResource(SYMR.strings.reader_preload_amount), subtitle = stringResource(SYMR.strings.reader_preload_amount_summary), entries = persistentMapOf( @@ -516,13 +516,13 @@ object SettingsReaderScreen : SearchableSettings { ), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.readerThreads(), + preference = readerPreferences.readerThreads, title = stringResource(SYMR.strings.download_threads), subtitle = stringResource(SYMR.strings.download_threads_summary), entries = List(5) { it }.associateWith { it.toString() }.toImmutableMap(), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.cacheSize(), + preference = readerPreferences.cacheSize, title = stringResource(SYMR.strings.reader_cache_size), subtitle = stringResource(SYMR.strings.reader_cache_size_summary), entries = persistentMapOf( @@ -545,7 +545,7 @@ object SettingsReaderScreen : SearchableSettings { ), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.aggressivePageLoading(), + preference = readerPreferences.aggressivePageLoading, title = stringResource(SYMR.strings.aggressively_load_pages), subtitle = stringResource(SYMR.strings.aggressively_load_pages_summary), ), @@ -555,26 +555,26 @@ object SettingsReaderScreen : SearchableSettings { @Composable private fun getForkSettingsGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup { - val pageLayout by readerPreferences.pageLayout().collectAsState() + val pageLayout by readerPreferences.pageLayout.collectAsState() return Preference.PreferenceGroup( title = stringResource(SYMR.strings.pref_category_fork), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.readerInstantRetry(), + preference = readerPreferences.readerInstantRetry, title = stringResource(SYMR.strings.skip_queue_on_retry), subtitle = stringResource(SYMR.strings.skip_queue_on_retry_summary), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.preserveReadingPosition(), + preference = readerPreferences.preserveReadingPosition, title = stringResource(SYMR.strings.preserve_reading_position), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.useAutoWebtoon(), + preference = readerPreferences.useAutoWebtoon, title = stringResource(SYMR.strings.auto_webtoon_mode), subtitle = stringResource(SYMR.strings.auto_webtoon_mode_summary), ), Preference.PreferenceItem.MultiSelectListPreference( - preference = readerPreferences.readerBottomButtons(), + preference = readerPreferences.readerBottomButtons, title = stringResource(SYMR.strings.reader_bottom_buttons), subtitle = stringResource(SYMR.strings.reader_bottom_buttons_summary), entries = ReaderBottomButton.entries @@ -582,7 +582,7 @@ object SettingsReaderScreen : SearchableSettings { .toImmutableMap(), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.pageLayout(), + preference = readerPreferences.pageLayout, title = stringResource(SYMR.strings.page_layout), subtitle = stringResource(SYMR.strings.automatic_can_still_switch), entries = ReaderPreferences.PageLayouts @@ -591,12 +591,12 @@ object SettingsReaderScreen : SearchableSettings { .toImmutableMap(), ), Preference.PreferenceItem.SwitchPreference( - preference = readerPreferences.invertDoublePages(), + preference = readerPreferences.invertDoublePages, title = stringResource(SYMR.strings.invert_double_pages), enabled = pageLayout != PagerConfig.PageLayout.SINGLE_PAGE, ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.centerMarginType(), + preference = readerPreferences.centerMarginType, title = stringResource(SYMR.strings.center_margin), subtitle = stringResource(SYMR.strings.pref_center_margin_summary), entries = ReaderPreferences.CenterMarginTypes @@ -605,7 +605,7 @@ object SettingsReaderScreen : SearchableSettings { .toImmutableMap(), ), Preference.PreferenceItem.ListPreference( - preference = readerPreferences.archiveReaderMode(), + preference = readerPreferences.archiveReaderMode, title = stringResource(SYMR.strings.pref_archive_reader_mode), subtitle = stringResource(SYMR.strings.pref_archive_reader_mode_summary), entries = ReaderPreferences.archiveModeTypes diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt index 8bae22750..9887be9ce 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt @@ -85,12 +85,12 @@ object SettingsSecurityScreen : SearchableSettings { ): Preference.PreferenceGroup { val context = LocalContext.current val authSupported = remember { context.isAuthenticationSupported() } - val useAuthPref = securityPreferences.useAuthenticator() + val useAuthPref = securityPreferences.useAuthenticator val useAuth by useAuthPref.collectAsState() val scope = rememberCoroutineScope() val isCbzPasswordSet by remember { CbzCrypto.isPasswordSetState(scope) }.collectAsState() - val passwordProtectDownloads by securityPreferences.passwordProtectDownloads().collectAsState() + val passwordProtectDownloads by securityPreferences.passwordProtectDownloads.collectAsState() return Preference.PreferenceGroup( title = stringResource(MR.strings.pref_security), @@ -106,7 +106,7 @@ object SettingsSecurityScreen : SearchableSettings { }, ), Preference.PreferenceItem.ListPreference( - preference = securityPreferences.lockAppAfter(), + preference = securityPreferences.lockAppAfter, entries = LockAfterValues .associateWith { when (it) { @@ -125,11 +125,11 @@ object SettingsSecurityScreen : SearchableSettings { }, ), Preference.PreferenceItem.SwitchPreference( - preference = securityPreferences.hideNotificationContent(), + preference = securityPreferences.hideNotificationContent, title = stringResource(MR.strings.hide_notification_content), ), Preference.PreferenceItem.ListPreference( - preference = securityPreferences.secureScreen(), + preference = securityPreferences.secureScreen, entries = SecurityPreferences.SecureScreenMode.entries .associateWith { stringResource(it.titleRes) } .toImmutableMap(), @@ -137,13 +137,13 @@ object SettingsSecurityScreen : SearchableSettings { ), // SY --> Preference.PreferenceItem.SwitchPreference( - preference = securityPreferences.passwordProtectDownloads(), + preference = securityPreferences.passwordProtectDownloads, title = stringResource(SYMR.strings.password_protect_downloads), subtitle = stringResource(SYMR.strings.password_protect_downloads_summary), enabled = isCbzPasswordSet, ), Preference.PreferenceItem.ListPreference( - preference = securityPreferences.encryptionType(), + preference = securityPreferences.encryptionType, title = stringResource(SYMR.strings.encryption_type), entries = SecurityPreferences.EncryptionType.entries .associateWith { stringResource(it.titleRes) } @@ -160,7 +160,7 @@ object SettingsSecurityScreen : SearchableSettings { dialogOpen = false CbzCrypto.deleteKeyCbz() - securityPreferences.cbzPassword().set(CbzCrypto.encryptCbz(password.replace("\n", ""))) + securityPreferences.cbzPassword.set(CbzCrypto.encryptCbz(password.replace("\n", ""))) }, ) } @@ -175,13 +175,13 @@ object SettingsSecurityScreen : SearchableSettings { title = stringResource(SYMR.strings.delete_cbz_archive_password), onClick = { CbzCrypto.deleteKeyCbz() - securityPreferences.cbzPassword().set("") + securityPreferences.cbzPassword.set("") }, enabled = isCbzPasswordSet, ), kotlin.run { val navigator = LocalNavigator.currentOrThrow - val count by securityPreferences.authenticatorTimeRanges().collectAsState() + val count by securityPreferences.authenticatorTimeRanges.collectAsState() Preference.PreferenceItem.TextPreference( title = stringResource(SYMR.strings.action_edit_biometric_lock_times), subtitle = pluralStringResource( @@ -196,7 +196,7 @@ object SettingsSecurityScreen : SearchableSettings { ) }, kotlin.run { - val selection by securityPreferences.authenticatorDays().collectAsState() + val selection by securityPreferences.authenticatorDays.collectAsState() var dialogOpen by remember { mutableStateOf(false) } if (dialogOpen) { SetLockedDaysDialog( @@ -204,7 +204,7 @@ object SettingsSecurityScreen : SearchableSettings { initialSelection = selection, onDaysSelected = { dialogOpen = false - securityPreferences.authenticatorDays().set(it) + securityPreferences.authenticatorDays.set(it) }, ) } @@ -384,12 +384,12 @@ object SettingsSecurityScreen : SearchableSettings { title = stringResource(MR.strings.pref_firebase), preferenceItems = persistentListOf( Preference.PreferenceItem.SwitchPreference( - preference = privacyPreferences.crashlytics(), + preference = privacyPreferences.crashlytics, title = stringResource(MR.strings.onboarding_permission_crashlytics), subtitle = stringResource(MR.strings.onboarding_permission_crashlytics_description), ), Preference.PreferenceItem.SwitchPreference( - preference = privacyPreferences.analytics(), + preference = privacyPreferences.analytics, title = stringResource(MR.strings.onboarding_permission_analytics), subtitle = stringResource(MR.strings.onboarding_permission_analytics_description), ), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt index 4c4346293..ec5377620 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt @@ -91,7 +91,7 @@ object SettingsTrackingScreen : SearchableSettings { val trackPreferences = remember { Injekt.get() } val trackerManager = remember { Injekt.get() } val sourceManager = remember { Injekt.get() } - val autoTrackStatePref = trackPreferences.autoUpdateTrackOnMarkRead() + val autoTrackStatePref = trackPreferences.autoUpdateTrackOnMarkRead var dialog by remember { mutableStateOf(null) } dialog?.run { @@ -129,11 +129,11 @@ object SettingsTrackingScreen : SearchableSettings { return listOf( Preference.PreferenceItem.SwitchPreference( - preference = trackPreferences.autoUpdateTrack(), + preference = trackPreferences.autoUpdateTrack, title = stringResource(MR.strings.pref_auto_update_manga_sync), ), Preference.PreferenceItem.ListPreference( - preference = trackPreferences.autoUpdateTrackOnMarkRead(), + preference = trackPreferences.autoUpdateTrackOnMarkRead, entries = AutoTrackState.entries .associateWith { stringResource(it.titleRes) } .toPersistentMap(), @@ -141,7 +141,7 @@ object SettingsTrackingScreen : SearchableSettings { ), // SY --> Preference.PreferenceItem.SwitchPreference( - preference = trackPreferences.resolveUsingSourceMetadata(), + preference = trackPreferences.resolveUsingSourceMetadata, title = stringResource(SYMR.strings.pref_tracker_resolve_using_source_metadata), subtitle = stringResource(SYMR.strings.pref_tracker_resolve_using_source_metadata_summary), ), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt index 50f8f0cd6..858356613 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt @@ -297,7 +297,7 @@ object AboutScreen : Screen() { ) .toDateTimestampString( UiPreferences.dateFormat( - Injekt.get().dateFormat().get(), + Injekt.get().dateFormat.get(), ), ) } catch (e: Exception) { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/DebugInfoScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/DebugInfoScreen.kt index 511faefb5..bfa33cec4 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/DebugInfoScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/DebugInfoScreen.kt @@ -64,7 +64,7 @@ class DebugInfoScreen : Screen() { val context = LocalContext.current val scope = rememberCoroutineScope() - val installationIdPref = remember { Injekt.get().installationId() } + val installationIdPref = remember { Injekt.get().installationId } val installationId by installationIdPref.collectAsState() return Preference.PreferenceGroup( diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/WorkerInfoScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/WorkerInfoScreen.kt index 88f1e6da2..e006deb89 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/WorkerInfoScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/WorkerInfoScreen.kt @@ -156,7 +156,7 @@ class WorkerInfoScreen : Screen() { ) .toDateTimestampString( UiPreferences.dateFormat( - Injekt.get().dateFormat().get(), + Injekt.get().dateFormat.get(), ), ) appendLine("Next scheduled run: $timestamp") diff --git a/app/src/main/java/eu/kanade/presentation/reader/DisplayRefreshHost.kt b/app/src/main/java/eu/kanade/presentation/reader/DisplayRefreshHost.kt index ecf26119d..08f7c4323 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/DisplayRefreshHost.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/DisplayRefreshHost.kt @@ -24,10 +24,10 @@ class DisplayRefreshHost { internal var currentDisplayRefresh by mutableStateOf(false) private val readerPreferences = Injekt.get() - internal val flashMillis = readerPreferences.flashDurationMillis() - internal val flashMode = readerPreferences.flashColor() + internal val flashMillis = readerPreferences.flashDurationMillis + internal val flashMode = readerPreferences.flashColor - internal val flashIntervalPref = readerPreferences.flashPageInterval() + internal val flashIntervalPref = readerPreferences.flashPageInterval // Internal State for Flash private var flashInterval = flashIntervalPref.get() diff --git a/app/src/main/java/eu/kanade/presentation/reader/settings/ColorFilterPage.kt b/app/src/main/java/eu/kanade/presentation/reader/settings/ColorFilterPage.kt index 19c4f0dde..b8c86d4f2 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/settings/ColorFilterPage.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/settings/ColorFilterPage.kt @@ -22,10 +22,10 @@ import tachiyomi.presentation.core.util.collectAsState @Composable internal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) { - val customBrightness by screenModel.preferences.customBrightness().collectAsState() + val customBrightness by screenModel.preferences.customBrightness.collectAsState() CheckboxItem( label = stringResource(MR.strings.pref_custom_brightness), - pref = screenModel.preferences.customBrightness(), + pref = screenModel.preferences.customBrightness, ) /* @@ -35,31 +35,31 @@ internal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) * 0 sets system brightness and hides the overlay. */ if (customBrightness) { - val customBrightnessValue by screenModel.preferences.customBrightnessValue().collectAsState() + val customBrightnessValue by screenModel.preferences.customBrightnessValue.collectAsState() SliderItem( value = customBrightnessValue, valueRange = -75..100, steps = 0, label = stringResource(MR.strings.pref_custom_brightness), - onChange = { screenModel.preferences.customBrightnessValue().set(it) }, + onChange = { screenModel.preferences.customBrightnessValue.set(it) }, pillColor = MaterialTheme.colorScheme.surfaceContainerHighest, ) } - val colorFilter by screenModel.preferences.colorFilter().collectAsState() + val colorFilter by screenModel.preferences.colorFilter.collectAsState() CheckboxItem( label = stringResource(MR.strings.pref_custom_color_filter), - pref = screenModel.preferences.colorFilter(), + pref = screenModel.preferences.colorFilter, ) if (colorFilter) { - val colorFilterValue by screenModel.preferences.colorFilterValue().collectAsState() + val colorFilterValue by screenModel.preferences.colorFilterValue.collectAsState() SliderItem( value = colorFilterValue.red, valueRange = 0..255, steps = 0, label = stringResource(MR.strings.color_filter_r_value), onChange = { newRValue -> - screenModel.preferences.colorFilterValue().getAndSet { + screenModel.preferences.colorFilterValue.getAndSet { getColorValue(it, newRValue, RED_MASK, 16) } }, @@ -71,7 +71,7 @@ internal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) steps = 0, label = stringResource(MR.strings.color_filter_g_value), onChange = { newGValue -> - screenModel.preferences.colorFilterValue().getAndSet { + screenModel.preferences.colorFilterValue.getAndSet { getColorValue(it, newGValue, GREEN_MASK, 8) } }, @@ -83,7 +83,7 @@ internal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) steps = 0, label = stringResource(MR.strings.color_filter_b_value), onChange = { newBValue -> - screenModel.preferences.colorFilterValue().getAndSet { + screenModel.preferences.colorFilterValue.getAndSet { getColorValue(it, newBValue, BLUE_MASK, 0) } }, @@ -95,19 +95,19 @@ internal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) steps = 0, label = stringResource(MR.strings.color_filter_a_value), onChange = { newAValue -> - screenModel.preferences.colorFilterValue().getAndSet { + screenModel.preferences.colorFilterValue.getAndSet { getColorValue(it, newAValue, ALPHA_MASK, 24) } }, pillColor = MaterialTheme.colorScheme.surfaceContainerHighest, ) - val colorFilterMode by screenModel.preferences.colorFilterMode().collectAsState() + val colorFilterMode by screenModel.preferences.colorFilterMode.collectAsState() SettingsChipRow(MR.strings.pref_color_filter_mode) { ColorFilterMode.mapIndexed { index, it -> FilterChip( selected = colorFilterMode == index, - onClick = { screenModel.preferences.colorFilterMode().set(index) }, + onClick = { screenModel.preferences.colorFilterMode.set(index) }, label = { Text(stringResource(it.first)) }, ) } @@ -116,11 +116,11 @@ internal fun ColumnScope.ColorFilterPage(screenModel: ReaderSettingsScreenModel) CheckboxItem( label = stringResource(MR.strings.pref_grayscale), - pref = screenModel.preferences.grayscale(), + pref = screenModel.preferences.grayscale, ) CheckboxItem( label = stringResource(MR.strings.pref_inverted_colors), - pref = screenModel.preferences.invertedColors(), + pref = screenModel.preferences.invertedColors, ) } diff --git a/app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt b/app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt index 8cad464cc..33764e087 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt @@ -34,24 +34,24 @@ private val flashColors = listOf( @Composable internal fun ColumnScope.GeneralPage(screenModel: ReaderSettingsScreenModel) { - val readerTheme by screenModel.preferences.readerTheme().collectAsState() + val readerTheme by screenModel.preferences.readerTheme.collectAsState() - val flashPageState by screenModel.preferences.flashOnPageChange().collectAsState() + val flashPageState by screenModel.preferences.flashOnPageChange.collectAsState() - val flashMillisPref = screenModel.preferences.flashDurationMillis() + val flashMillisPref = screenModel.preferences.flashDurationMillis val flashMillis by flashMillisPref.collectAsState() - val flashIntervalPref = screenModel.preferences.flashPageInterval() + val flashIntervalPref = screenModel.preferences.flashPageInterval val flashInterval by flashIntervalPref.collectAsState() - val flashColorPref = screenModel.preferences.flashColor() + val flashColorPref = screenModel.preferences.flashColor val flashColor by flashColorPref.collectAsState() SettingsChipRow(MR.strings.pref_reader_theme) { themes.map { (labelRes, value) -> FilterChip( selected = readerTheme == value, - onClick = { screenModel.preferences.readerTheme().set(value) }, + onClick = { screenModel.preferences.readerTheme.set(value) }, label = { Text(stringResource(labelRes)) }, ) } @@ -59,66 +59,66 @@ internal fun ColumnScope.GeneralPage(screenModel: ReaderSettingsScreenModel) { CheckboxItem( label = stringResource(MR.strings.pref_show_page_number), - pref = screenModel.preferences.showPageNumber(), + pref = screenModel.preferences.showPageNumber, ) // SY --> - val forceHorizontalSeekbar by screenModel.preferences.forceHorizontalSeekbar().collectAsState() + val forceHorizontalSeekbar by screenModel.preferences.forceHorizontalSeekbar.collectAsState() CheckboxItem( label = stringResource(SYMR.strings.pref_force_horz_seekbar), - pref = screenModel.preferences.forceHorizontalSeekbar(), + pref = screenModel.preferences.forceHorizontalSeekbar, ) if (!forceHorizontalSeekbar) { CheckboxItem( label = stringResource(SYMR.strings.pref_show_vert_seekbar_landscape), - pref = screenModel.preferences.landscapeVerticalSeekbar(), + pref = screenModel.preferences.landscapeVerticalSeekbar, ) CheckboxItem( label = stringResource(SYMR.strings.pref_left_handed_vertical_seekbar), - pref = screenModel.preferences.leftVerticalSeekbar(), + pref = screenModel.preferences.leftVerticalSeekbar, ) } // SY <-- CheckboxItem( label = stringResource(MR.strings.pref_fullscreen), - pref = screenModel.preferences.fullscreen(), + pref = screenModel.preferences.fullscreen, ) - val isFullscreen by screenModel.preferences.fullscreen().collectAsState() + val isFullscreen by screenModel.preferences.fullscreen.collectAsState() if (LocalActivity.current?.hasDisplayCutout() == true && isFullscreen) { CheckboxItem( label = stringResource(MR.strings.pref_cutout_short), - pref = screenModel.preferences.drawUnderCutout(), + pref = screenModel.preferences.drawUnderCutout, ) } CheckboxItem( label = stringResource(MR.strings.pref_keep_screen_on), - pref = screenModel.preferences.keepScreenOn(), + pref = screenModel.preferences.keepScreenOn, ) CheckboxItem( label = stringResource(MR.strings.pref_read_with_long_tap), - pref = screenModel.preferences.readWithLongTap(), + pref = screenModel.preferences.readWithLongTap, ) CheckboxItem( label = stringResource(MR.strings.pref_always_show_chapter_transition), - pref = screenModel.preferences.alwaysShowChapterTransition(), + pref = screenModel.preferences.alwaysShowChapterTransition, ) // SY --> /*CheckboxItem( label = stringResource(MR.strings.pref_page_transitions), - pref = screenModel.preferences.pageTransitions(), + pref = screenModel.preferences.pageTransitions, ) SY <-- */ CheckboxItem( label = stringResource(MR.strings.pref_flash_page), - pref = screenModel.preferences.flashOnPageChange(), + pref = screenModel.preferences.flashOnPageChange, ) if (flashPageState) { SliderItem( @@ -153,7 +153,7 @@ internal fun ColumnScope.GeneralPage(screenModel: ReaderSettingsScreenModel) { // SY --> CheckboxItem( label = stringResource(SYMR.strings.auto_webtoon_mode), - pref = screenModel.preferences.useAutoWebtoon(), + pref = screenModel.preferences.useAutoWebtoon, ) // SY <-- } diff --git a/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt b/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt index fce1f856f..b4ed230a3 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt @@ -67,44 +67,44 @@ internal fun ColumnScope.ReadingModePage(screenModel: ReaderSettingsScreenModel) private fun ColumnScope.PagerViewerSettings(screenModel: ReaderSettingsScreenModel) { HeadingItem(MR.strings.pager_viewer) - val navigationModePager by screenModel.preferences.navigationModePager().collectAsState() - val pagerNavInverted by screenModel.preferences.pagerNavInverted().collectAsState() + val navigationModePager by screenModel.preferences.navigationModePager.collectAsState() + val pagerNavInverted by screenModel.preferences.pagerNavInverted.collectAsState() TapZonesItems( selected = navigationModePager, - onSelect = screenModel.preferences.navigationModePager()::set, + onSelect = screenModel.preferences.navigationModePager::set, invertMode = pagerNavInverted, - onSelectInvertMode = screenModel.preferences.pagerNavInverted()::set, + onSelectInvertMode = screenModel.preferences.pagerNavInverted::set, ) - val imageScaleType by screenModel.preferences.imageScaleType().collectAsState() + val imageScaleType by screenModel.preferences.imageScaleType.collectAsState() SettingsChipRow(MR.strings.pref_image_scale_type) { ReaderPreferences.ImageScaleType.mapIndexed { index, it -> FilterChip( selected = imageScaleType == index + 1, - onClick = { screenModel.preferences.imageScaleType().set(index + 1) }, + onClick = { screenModel.preferences.imageScaleType.set(index + 1) }, label = { Text(stringResource(it)) }, ) } } - val zoomStart by screenModel.preferences.zoomStart().collectAsState() + val zoomStart by screenModel.preferences.zoomStart.collectAsState() SettingsChipRow(MR.strings.pref_zoom_start) { ReaderPreferences.ZoomStart.mapIndexed { index, it -> FilterChip( selected = zoomStart == index + 1, - onClick = { screenModel.preferences.zoomStart().set(index + 1) }, + onClick = { screenModel.preferences.zoomStart.set(index + 1) }, label = { Text(stringResource(it)) }, ) } } // SY --> - val pageLayout by screenModel.preferences.pageLayout().collectAsState() + val pageLayout by screenModel.preferences.pageLayout.collectAsState() SettingsChipRow(SYMR.strings.page_layout) { ReaderPreferences.PageLayouts.mapIndexed { index, it -> FilterChip( selected = pageLayout == index, - onClick = { screenModel.preferences.pageLayout().set(index) }, + onClick = { screenModel.preferences.pageLayout.set(index) }, label = { Text(stringResource(it)) }, ) } @@ -113,62 +113,62 @@ private fun ColumnScope.PagerViewerSettings(screenModel: ReaderSettingsScreenMod CheckboxItem( label = stringResource(MR.strings.pref_crop_borders), - pref = screenModel.preferences.cropBorders(), + pref = screenModel.preferences.cropBorders, ) CheckboxItem( label = stringResource(MR.strings.pref_landscape_zoom), - pref = screenModel.preferences.landscapeZoom(), + pref = screenModel.preferences.landscapeZoom, ) CheckboxItem( label = stringResource(MR.strings.pref_navigate_pan), - pref = screenModel.preferences.navigateToPan(), + pref = screenModel.preferences.navigateToPan, ) - val dualPageSplitPaged by screenModel.preferences.dualPageSplitPaged().collectAsState() + val dualPageSplitPaged by screenModel.preferences.dualPageSplitPaged.collectAsState() CheckboxItem( label = stringResource(MR.strings.pref_dual_page_split), - pref = screenModel.preferences.dualPageSplitPaged(), + pref = screenModel.preferences.dualPageSplitPaged, ) if (dualPageSplitPaged) { CheckboxItem( label = stringResource(MR.strings.pref_dual_page_invert), - pref = screenModel.preferences.dualPageInvertPaged(), + pref = screenModel.preferences.dualPageInvertPaged, ) } - val dualPageRotateToFit by screenModel.preferences.dualPageRotateToFit().collectAsState() + val dualPageRotateToFit by screenModel.preferences.dualPageRotateToFit.collectAsState() CheckboxItem( label = stringResource(MR.strings.pref_page_rotate), - pref = screenModel.preferences.dualPageRotateToFit(), + pref = screenModel.preferences.dualPageRotateToFit, ) if (dualPageRotateToFit) { CheckboxItem( label = stringResource(MR.strings.pref_page_rotate_invert), - pref = screenModel.preferences.dualPageRotateToFitInvert(), + pref = screenModel.preferences.dualPageRotateToFitInvert, ) } // SY --> CheckboxItem( label = stringResource(MR.strings.pref_page_transitions), - pref = screenModel.preferences.pageTransitionsPager(), + pref = screenModel.preferences.pageTransitionsPager, ) CheckboxItem( label = stringResource(SYMR.strings.invert_double_pages), - pref = screenModel.preferences.invertDoublePages(), + pref = screenModel.preferences.invertDoublePages, ) - val centerMarginType by screenModel.preferences.centerMarginType().collectAsState() + val centerMarginType by screenModel.preferences.centerMarginType.collectAsState() SettingsChipRow(SYMR.strings.pref_center_margin) { ReaderPreferences.CenterMarginTypes.mapIndexed { index, it -> FilterChip( selected = centerMarginType == index, - onClick = { screenModel.preferences.centerMarginType().set(index) }, + onClick = { screenModel.preferences.centerMarginType.set(index) }, label = { Text(stringResource(it)) }, ) } @@ -182,77 +182,77 @@ private fun ColumnScope.WebtoonViewerSettings(screenModel: ReaderSettingsScreenM HeadingItem(MR.strings.webtoon_viewer) - val navigationModeWebtoon by screenModel.preferences.navigationModeWebtoon().collectAsState() - val webtoonNavInverted by screenModel.preferences.webtoonNavInverted().collectAsState() + val navigationModeWebtoon by screenModel.preferences.navigationModeWebtoon.collectAsState() + val webtoonNavInverted by screenModel.preferences.webtoonNavInverted.collectAsState() TapZonesItems( selected = navigationModeWebtoon, - onSelect = screenModel.preferences.navigationModeWebtoon()::set, + onSelect = screenModel.preferences.navigationModeWebtoon::set, invertMode = webtoonNavInverted, - onSelectInvertMode = screenModel.preferences.webtoonNavInverted()::set, + onSelectInvertMode = screenModel.preferences.webtoonNavInverted::set, ) - val webtoonSidePadding by screenModel.preferences.webtoonSidePadding().collectAsState() + val webtoonSidePadding by screenModel.preferences.webtoonSidePadding.collectAsState() SliderItem( value = webtoonSidePadding, valueRange = ReaderPreferences.let { it.WEBTOON_PADDING_MIN..it.WEBTOON_PADDING_MAX }, label = stringResource(MR.strings.pref_webtoon_side_padding), valueString = numberFormat.format(webtoonSidePadding / 100f), onChange = { - screenModel.preferences.webtoonSidePadding().set(it) + screenModel.preferences.webtoonSidePadding.set(it) }, pillColor = MaterialTheme.colorScheme.surfaceContainerHighest, ) CheckboxItem( label = stringResource(MR.strings.pref_crop_borders), - pref = screenModel.preferences.cropBordersWebtoon(), + pref = screenModel.preferences.cropBordersWebtoon, ) // SY --> CheckboxItem( label = stringResource(SYMR.strings.pref_smooth_scroll), - pref = screenModel.preferences.smoothAutoScroll(), + pref = screenModel.preferences.smoothAutoScroll, ) CheckboxItem( label = stringResource(MR.strings.pref_page_transitions), - pref = screenModel.preferences.pageTransitionsWebtoon(), + pref = screenModel.preferences.pageTransitionsWebtoon, ) // SY <-- - val dualPageSplitWebtoon by screenModel.preferences.dualPageSplitWebtoon().collectAsState() + val dualPageSplitWebtoon by screenModel.preferences.dualPageSplitWebtoon.collectAsState() CheckboxItem( label = stringResource(MR.strings.pref_dual_page_split), - pref = screenModel.preferences.dualPageSplitWebtoon(), + pref = screenModel.preferences.dualPageSplitWebtoon, ) if (dualPageSplitWebtoon) { CheckboxItem( label = stringResource(MR.strings.pref_dual_page_invert), - pref = screenModel.preferences.dualPageInvertWebtoon(), + pref = screenModel.preferences.dualPageInvertWebtoon, ) } - val dualPageRotateToFitWebtoon by screenModel.preferences.dualPageRotateToFitWebtoon().collectAsState() + val dualPageRotateToFitWebtoon by screenModel.preferences.dualPageRotateToFitWebtoon.collectAsState() CheckboxItem( label = stringResource(MR.strings.pref_page_rotate), - pref = screenModel.preferences.dualPageRotateToFitWebtoon(), + pref = screenModel.preferences.dualPageRotateToFitWebtoon, ) if (dualPageRotateToFitWebtoon) { CheckboxItem( label = stringResource(MR.strings.pref_page_rotate_invert), - pref = screenModel.preferences.dualPageRotateToFitInvertWebtoon(), + pref = screenModel.preferences.dualPageRotateToFitInvertWebtoon, ) } CheckboxItem( label = stringResource(MR.strings.pref_double_tap_zoom), - pref = screenModel.preferences.webtoonDoubleTapZoomEnabled(), + pref = screenModel.preferences.webtoonDoubleTapZoomEnabled, ) CheckboxItem( label = stringResource(MR.strings.pref_webtoon_disable_zoom_out), - pref = screenModel.preferences.webtoonDisableZoomOut(), + pref = screenModel.preferences.webtoonDisableZoomOut, ) } @@ -263,7 +263,7 @@ private fun ColumnScope.WebtoonWithGapsViewerSettings(screenModel: ReaderSetting CheckboxItem( label = stringResource(MR.strings.pref_crop_borders), - pref = screenModel.preferences.cropBordersContinuousVertical(), + pref = screenModel.preferences.cropBordersContinuousVertical, ) } // SY <-- diff --git a/app/src/main/java/eu/kanade/presentation/theme/TachiyomiTheme.kt b/app/src/main/java/eu/kanade/presentation/theme/TachiyomiTheme.kt index e7d8a4867..71ee3d988 100644 --- a/app/src/main/java/eu/kanade/presentation/theme/TachiyomiTheme.kt +++ b/app/src/main/java/eu/kanade/presentation/theme/TachiyomiTheme.kt @@ -35,8 +35,8 @@ fun TachiyomiTheme( ) { val uiPreferences = Injekt.get() BaseTachiyomiTheme( - appTheme = appTheme ?: uiPreferences.appTheme().get(), - isAmoled = amoled ?: uiPreferences.themeDarkAmoled().get(), + appTheme = appTheme ?: uiPreferences.appTheme.get(), + isAmoled = amoled ?: uiPreferences.themeDarkAmoled.get(), content = content, ) } diff --git a/app/src/main/java/eu/kanade/presentation/updates/UpdatesFilterDialog.kt b/app/src/main/java/eu/kanade/presentation/updates/UpdatesFilterDialog.kt index 3a5362cbc..e17c9a022 100644 --- a/app/src/main/java/eu/kanade/presentation/updates/UpdatesFilterDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/updates/UpdatesFilterDialog.kt @@ -55,28 +55,28 @@ fun UpdatesFilterDialog( private fun ColumnScope.FilterSheet( screenModel: UpdatesSettingsScreenModel, ) { - val filterDownloaded by screenModel.updatesPreferences.filterDownloaded().collectAsState() + val filterDownloaded by screenModel.updatesPreferences.filterDownloaded.collectAsState() TriStateItem( label = stringResource(MR.strings.label_downloaded), state = filterDownloaded, onClick = { screenModel.toggleFilter(UpdatesPreferences::filterDownloaded) }, ) - val filterUnread by screenModel.updatesPreferences.filterUnread().collectAsState() + val filterUnread by screenModel.updatesPreferences.filterUnread.collectAsState() TriStateItem( label = stringResource(MR.strings.action_filter_unread), state = filterUnread, onClick = { screenModel.toggleFilter(UpdatesPreferences::filterUnread) }, ) - val filterStarted by screenModel.updatesPreferences.filterStarted().collectAsState() + val filterStarted by screenModel.updatesPreferences.filterStarted.collectAsState() TriStateItem( label = stringResource(MR.strings.label_started), state = filterStarted, onClick = { screenModel.toggleFilter(UpdatesPreferences::filterStarted) }, ) - val filterBookmarked by screenModel.updatesPreferences.filterBookmarked().collectAsState() + val filterBookmarked by screenModel.updatesPreferences.filterBookmarked.collectAsState() TriStateItem( label = stringResource(MR.strings.action_filter_bookmarked), state = filterBookmarked, @@ -85,9 +85,9 @@ private fun ColumnScope.FilterSheet( HorizontalDivider(modifier = Modifier.padding(MaterialTheme.padding.small)) - val filterExcludedScanlators by screenModel.updatesPreferences.filterExcludedScanlators().collectAsState() + val filterExcludedScanlators by screenModel.updatesPreferences.filterExcludedScanlators.collectAsState() - fun toggleScanlatorFilter() = screenModel.updatesPreferences.filterExcludedScanlators().getAndSet { !it } + fun toggleScanlatorFilter() = screenModel.updatesPreferences.filterExcludedScanlators.getAndSet { !it } Row( modifier = Modifier diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index c01818c8d..a31bea708 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -141,7 +141,7 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor val scope = ProcessLifecycleOwner.get().lifecycleScope // Show notification to disable Incognito Mode when it's enabled - basePreferences.incognitoMode().changes() + basePreferences.incognitoMode.changes() .onEach { enabled -> if (enabled) { disableIncognitoReceiver.register() @@ -169,25 +169,25 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor } .launchIn(scope) - privacyPreferences.analytics() + privacyPreferences.analytics .changes() .onEach(FirebaseConfig::setAnalyticsEnabled) .launchIn(scope) - privacyPreferences.crashlytics() + privacyPreferences.crashlytics .changes() .onEach(FirebaseConfig::setCrashlyticsEnabled) .launchIn(scope) - basePreferences.hardwareBitmapThreshold().let { preference -> + basePreferences.hardwareBitmapThreshold.let { preference -> if (!preference.isSet()) preference.set(GLUtil.DEVICE_TEXTURE_LIMIT) } - basePreferences.hardwareBitmapThreshold().changes() + basePreferences.hardwareBitmapThreshold.changes() .onEach { ImageUtil.hardwareBitmapThreshold = it } .launchIn(scope) - setAppCompatDelegateThemeMode(Injekt.get().themeMode().get()) + setAppCompatDelegateThemeMode(Injekt.get().themeMode.get()) // Updates widget update WidgetManager(Injekt.get(), Injekt.get()).apply { init(scope) } @@ -256,7 +256,7 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor crossfade((300 * this@App.animatorDurationScale).toInt()) allowRgb565(DeviceUtil.isLowRamDevice(this@App)) - if (networkPreferences.verboseLogging().get()) logger(DebugLogger()) + if (networkPreferences.verboseLogging.get()) logger(DebugLogger()) // Coil spawns a new thread for every image load by default fetcherCoroutineContext(Dispatchers.IO.limitedParallelism(8)) @@ -376,7 +376,7 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor private var registered = false override fun onReceive(context: Context, intent: Intent) { - basePreferences.incognitoMode().set(false) + basePreferences.incognitoMode.set(false) } fun register() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt index 7d22b20b3..ab9a6eeb4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt @@ -101,7 +101,7 @@ class BackupNotifier(private val context: Context) { } setContentTitle(contentTitle) - if (!preferences.hideNotificationContent().get()) { + if (!preferences.hideNotificationContent.get()) { setContentText(content) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreateJob.kt index 80c11c62f..8a0af5dba 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreateJob.kt @@ -89,7 +89,7 @@ class BackupCreateJob(private val context: Context, workerParams: WorkerParamete fun setupTask(context: Context, prefInterval: Int? = null) { val backupPreferences = Injekt.get() - val interval = prefInterval ?: backupPreferences.backupInterval().get() + val interval = prefInterval ?: backupPreferences.backupInterval.get() if (interval > 0) { val constraints = Constraints( requiresBatteryNotLow = true, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt index 0c31e66d3..8d3e846c3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/create/BackupCreator.kt @@ -124,7 +124,7 @@ class BackupCreator( BackupFileValidator(context).validate(fileUri) if (isAutoBackup) { - backupPreferences.lastAutoBackupTimestamp().set(Instant.now().toEpochMilli()) + backupPreferences.lastAutoBackupTimestamp.set(Instant.now().toEpochMilli()) } return fileUri.toString() diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt index ce4bfc3ed..a45e991a5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt @@ -75,7 +75,7 @@ class CategoriesRestorer( } // SY <-- - libraryPreferences.categorizedDisplaySettings().set( + libraryPreferences.categorizedDisplaySettings.set( (dbCategories + categories) .distinctBy { it.flags } .size > 1, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/cache/ChapterCache.kt b/app/src/main/java/eu/kanade/tachiyomi/data/cache/ChapterCache.kt index 733b4e9ca..1bfe291af 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/cache/ChapterCache.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/cache/ChapterCache.kt @@ -44,10 +44,10 @@ class ChapterCache( private val scope = CoroutineScope(Job() + Dispatchers.Main) /** Cache class used for cache management. */ - private var diskCache = setupDiskCache(readerPreferences.cacheSize().get().toLong()) + private var diskCache = setupDiskCache(readerPreferences.cacheSize.get().toLong()) init { - readerPreferences.cacheSize().changes() + readerPreferences.cacheSize.changes() .drop(1) .onEach { // Save old cache for destruction later diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadJob.kt index 6a7b4469e..b503629d6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadJob.kt @@ -56,7 +56,7 @@ class DownloadJob(context: Context, workerParams: WorkerParameters) : CoroutineW override suspend fun doWork(): Result { var networkCheck = checkNetworkState( applicationContext.activeNetworkState(), - downloadPreferences.downloadOnlyOverWifi().get(), + downloadPreferences.downloadOnlyOverWifi.get(), ) var active = networkCheck && downloadManager.downloaderStart() @@ -69,7 +69,7 @@ class DownloadJob(context: Context, workerParams: WorkerParameters) : CoroutineW coroutineScope { combineTransform( applicationContext.networkStateFlow(), - downloadPreferences.downloadOnlyOverWifi().changes(), + downloadPreferences.downloadOnlyOverWifi.changes(), transform = { a, b -> emit(checkNetworkState(a, b)) }, ) .onEach { networkCheck = it } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index 633ba2776..d555ef127 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -470,7 +470,7 @@ class DownloadManager( private suspend fun getChaptersToDelete(chapters: List, manga: Manga): List { // Retrieve the categories that are set to exclude from being deleted on read - val categoriesToExclude = downloadPreferences.removeExcludeCategories().get().map(String::toLong) + val categoriesToExclude = downloadPreferences.removeExcludeCategories.get().map(String::toLong) val categoriesForManga = getCategories.await(manga.id) .map { it.id } @@ -481,7 +481,7 @@ class DownloadManager( chapters } - return if (!downloadPreferences.removeBookmarkedChapters().get()) { + return if (!downloadPreferences.removeBookmarkedChapters.get()) { filteredCategoryManga.filterNot { it.bookmark } } else { filteredCategoryManga diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt index ee3a5fe0f..47f48c38e 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt @@ -96,7 +96,7 @@ internal class DownloadNotifier(private val context: Context) { download.pages!!.size, ) - if (preferences.hideNotificationContent().get()) { + if (preferences.hideNotificationContent.get()) { setContentTitle(downloadingProgressText) setContentText(null) } else { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt index c442b8dbe..d72271f8c 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt @@ -164,7 +164,7 @@ class DownloadProvider( fun getSourceDirName(source: Source): String { return DiskUtil.buildValidFilename( source.toString(), - disallowNonAscii = libraryPreferences.disallowNonAsciiFilenames().get(), + disallowNonAscii = libraryPreferences.disallowNonAsciiFilenames.get(), ) } @@ -176,7 +176,7 @@ class DownloadProvider( fun getMangaDirName(mangaTitle: String): String { return DiskUtil.buildValidFilename( mangaTitle, - disallowNonAscii = libraryPreferences.disallowNonAsciiFilenames().get(), + disallowNonAscii = libraryPreferences.disallowNonAsciiFilenames.get(), ) } @@ -191,8 +191,8 @@ class DownloadProvider( chapterName: String, chapterScanlator: String?, chapterUrl: String, - disallowNonAsciiFilenames: Boolean = libraryPreferences.disallowNonAsciiFilenames().get(), - includeChapterUrlHash: Boolean = downloadPreferences.includeChapterUrlHash().get(), + disallowNonAsciiFilenames: Boolean = libraryPreferences.disallowNonAsciiFilenames.get(), + includeChapterUrlHash: Boolean = downloadPreferences.includeChapterUrlHash.get(), ): String { var dirName = sanitizeChapterName(chapterName) if (!chapterScanlator.isNullOrBlank()) { @@ -235,8 +235,8 @@ class DownloadProvider( chapterName, chapterScanlator, chapterUrl, - !libraryPreferences.disallowNonAsciiFilenames().get(), - !downloadPreferences.includeChapterUrlHash().get(), + !libraryPreferences.disallowNonAsciiFilenames.get(), + !downloadPreferences.includeChapterUrlHash.get(), ) return buildList(2) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index efa9ee80d..1161e83c5 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -25,7 +25,6 @@ import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.async import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asFlow @@ -50,7 +49,6 @@ import okhttp3.Response import tachiyomi.core.common.i18n.stringResource import tachiyomi.core.common.storage.extension import tachiyomi.core.common.util.lang.launchIO -import tachiyomi.core.common.util.lang.launchNow import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.core.common.util.system.ImageUtil import tachiyomi.core.common.util.system.logcat @@ -203,7 +201,7 @@ class Downloader( downloaderJob = scope.launch { val activeDownloadsFlow = combine( queueState, - downloadPreferences.parallelSourceLimit().changes(), + downloadPreferences.parallelSourceLimit.changes(), ) { a, b -> a to b }.transformLatest { (queue, parallelCount) -> while (true) { val activeDownloads = queue.asSequence() @@ -380,7 +378,7 @@ class Downloader( reIndexedPages } - val dataSaver = if (sourcePreferences.dataSaverDownloader().get()) { + val dataSaver = if (sourcePreferences.dataSaverDownloader.get()) { DataSaver(download.source, sourcePreferences) } else { DataSaver.NoOp @@ -394,7 +392,7 @@ class Downloader( download.status = Download.State.DOWNLOADING // Start downloading images, consider we can have downloaded images already - pageList.asFlow().flatMapMerge(concurrency = downloadPreferences.parallelPageLimit().get()) { page -> + pageList.asFlow().flatMapMerge(concurrency = downloadPreferences.parallelPageLimit.get()) { page -> flow { // Fetch image URL if necessary if (page.imageUrl.isNullOrEmpty()) { @@ -431,7 +429,7 @@ class Downloader( ) // Only rename the directory if it's downloaded - if (downloadPreferences.saveChaptersAsCBZ().get()) { + if (downloadPreferences.saveChaptersAsCBZ.get()) { archiveChapter(mangaDir, chapterDirname, tmpDir) } else { tmpDir.renameTo(chapterDirname) @@ -579,7 +577,7 @@ class Downloader( } private fun splitTallImageIfNeeded(page: Page, tmpDir: UniFile) { - if (!downloadPreferences.splitTallImages().get()) return + if (!downloadPreferences.splitTallImages.get()) return try { val filenamePrefix = "%03d".format(Locale.ENGLISH, page.number) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt index e1aaf29c9..531f1db2a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt @@ -138,7 +138,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet if (tags.contains(WORK_NAME_AUTO)) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) { val preferences = Injekt.get() - val restrictions = preferences.autoUpdateDeviceRestrictions().get() + val restrictions = preferences.autoUpdateDeviceRestrictions.get() if ((DEVICE_ONLY_ON_WIFI in restrictions) && !context.isConnectedToWifi()) { return Result.retry() } @@ -157,7 +157,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet // If this is a chapter update, set the last update time to now if (target == Target.CHAPTERS) { - libraryPreferences.lastUpdatedTimestamp().set(Instant.now().toEpochMilli()) + libraryPreferences.lastUpdatedTimestamp.set(Instant.now().toEpochMilli()) } val categoryId = inputData.getLong(KEY_CATEGORY, -1L) @@ -213,7 +213,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet private suspend fun addMangaToQueue(categoryId: Long, group: Int, groupExtra: String?) { val libraryManga = getLibraryManga.await() // SY --> - val groupLibraryUpdateType = libraryPreferences.groupLibraryUpdateType().get() + val groupLibraryUpdateType = libraryPreferences.groupLibraryUpdateType.get() // SY <-- val listToUpdate = if (categoryId != -1L) { @@ -225,8 +225,8 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet (groupLibraryUpdateType == GroupLibraryMode.ALL_BUT_UNGROUPED && group == LibraryGroup.UNGROUPED) ) { // SY <-- - val includedCategories = libraryPreferences.updateCategories().get().map { it.toLong() }.toSet() - val excludedCategories = libraryPreferences.updateCategoriesExclude().get().map { it.toLong() }.toSet() + val includedCategories = libraryPreferences.updateCategories.get().map { it.toLong() }.toSet() + val excludedCategories = libraryPreferences.updateCategoriesExclude.get().map { it.toLong() }.toSet() libraryManga.filter { val included = includedCategories.isEmpty() || it.categories.intersect(includedCategories).isNotEmpty() @@ -271,7 +271,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet // SY <-- } - val restrictions = libraryPreferences.autoUpdateMangaRestrictions().get() + val restrictions = libraryPreferences.autoUpdateMangaRestrictions.get() val skippedUpdates = mutableListOf>() val (_, fetchWindowUpperBound) = fetchInterval.getWindow(ZonedDateTime.now()) @@ -406,7 +406,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet hasDownloads.store(true) } - libraryPreferences.newUpdatesCount().getAndSet { it + newChapters.size } + libraryPreferences.newUpdatesCount.getAndSet { it + newChapters.size } // Convert to the manga that contains new chapters newUpdates.add(manga to newChapters.toTypedArray()) @@ -482,7 +482,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet val source = sourceManager.getOrStub(manga.source) // Update manga metadata if needed - if (libraryPreferences.autoUpdateMetadata().get()) { + if (libraryPreferences.autoUpdateMetadata.get()) { val networkManga = source.getMangaDetails(manga.toSManga()) updateManga.awaitUpdateFromSource(manga, networkManga, manualFetch = false, coverCache) } @@ -559,7 +559,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet var count = 0 val mangaDex = MdUtil.getEnabledMangaDex(preferences, sourceManager = sourceManager) ?: return@coroutineScope - val syncFollowStatusInts = preferences.mangadexSyncToLibraryIndexes().get().map { it.toInt() } + val syncFollowStatusInts = preferences.mangadexSyncToLibraryIndexes.get().map { it.toInt() } val size: Int mangaDex.fetchAllFollows() @@ -740,9 +740,9 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet prefInterval: Int? = null, ) { val preferences = Injekt.get() - val interval = prefInterval ?: preferences.autoUpdateInterval().get() + val interval = prefInterval ?: preferences.autoUpdateInterval.get() if (interval > 0) { - val restrictions = preferences.autoUpdateDeviceRestrictions().get() + val restrictions = preferences.autoUpdateDeviceRestrictions.get() val networkType = if (DEVICE_NETWORK_NOT_METERED in restrictions) { NetworkType.UNMETERED } else { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt index 7dea9bdc0..582974c16 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt @@ -100,7 +100,7 @@ class LibraryUpdateNotifier( ), ) - if (!securityPreferences.hideNotificationContent().get()) { + if (!securityPreferences.hideNotificationContent.get()) { val updatingText = manga.joinToString("\n") { it.title.chop(40) } progressNotificationBuilder.setStyle(NotificationCompat.BigTextStyle().bigText(updatingText)) } @@ -175,7 +175,7 @@ class LibraryUpdateNotifier( Notifications.CHANNEL_NEW_CHAPTERS, ) { setContentTitle(context.stringResource(MR.strings.notification_new_chapters)) - if (updates.size == 1 && !securityPreferences.hideNotificationContent().get()) { + if (updates.size == 1 && !securityPreferences.hideNotificationContent.get()) { setContentText(updates.first().first.title.chop(NOTIF_TITLE_MAX_LEN)) } else { setContentText( @@ -186,7 +186,7 @@ class LibraryUpdateNotifier( ), ) - if (!securityPreferences.hideNotificationContent().get()) { + if (!securityPreferences.hideNotificationContent.get()) { setStyle( NotificationCompat.BigTextStyle().bigText( updates.joinToString("\n") { @@ -210,7 +210,7 @@ class LibraryUpdateNotifier( } // Per-manga notification - if (!securityPreferences.hideNotificationContent().get()) { + if (!securityPreferences.hideNotificationContent.get()) { launchUI { context.notify( updates.map { (manga, chapters) -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt index 87fceaa66..aba30d754 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt @@ -226,7 +226,7 @@ class NotificationReceiver : BroadcastReceiver() { val toUpdate = chapterUrls.mapNotNull { getChapter.await(it, mangaId) } .map { val chapter = it.copy(read = true) - if (downloadPreferences.removeAfterMarkedAsRead().get()) { + if (downloadPreferences.removeAfterMarkedAsRead.get()) { val manga = getManga.await(mangaId) if (manga != null) { val source = sourceManager.get(manga.source) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncDataJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncDataJob.kt index 66d4f6660..81f985549 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncDataJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncDataJob.kt @@ -78,7 +78,7 @@ class SyncDataJob(private val context: Context, workerParams: WorkerParameters) fun setupTask(context: Context, prefInterval: Int? = null) { val syncPreferences = Injekt.get() - val interval = prefInterval ?: syncPreferences.syncInterval().get() + val interval = prefInterval ?: syncPreferences.syncInterval.get() if (interval > 0) { val request = PeriodicWorkRequestBuilder( diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncManager.kt index a3fcd9f29..293c08ce1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncManager.kt @@ -120,7 +120,7 @@ class SyncManager( ) // Handle sync based on the selected service - val syncService = when (val syncService = SyncService.fromInt(syncPreferences.syncService().get())) { + val syncService = when (val syncService = SyncService.fromInt(syncPreferences.syncService.get())) { SyncService.SYNCYOMI -> { SyncYomiSyncService( context, @@ -151,7 +151,7 @@ class SyncManager( if (remoteBackup === syncData.backup) { // nothing changed logcat(LogPriority.DEBUG) { "Skip restore due to remote was overwrite from local" } - syncPreferences.lastSyncTimestamp().set(Date().time) + syncPreferences.lastSyncTimestamp.set(Date().time) notifier.showSyncSuccess("Sync completed successfully") return } @@ -163,9 +163,9 @@ class SyncManager( } // Check if it's first sync based on lastSyncTimestamp - if (syncPreferences.lastSyncTimestamp().get() == 0L && databaseManga.isNotEmpty()) { + if (syncPreferences.lastSyncTimestamp.get() == 0L && databaseManga.isNotEmpty()) { // It's first sync no need to restore data. (just update remote data) - syncPreferences.lastSyncTimestamp().set(Date().time) + syncPreferences.lastSyncTimestamp.set(Date().time) notifier.showSyncSuccess("Updated remote data successfully") return } @@ -199,7 +199,7 @@ class SyncManager( !hasExtensionRepoChanges && !hasSavedSearchChanges ) { // update the sync timestamp - syncPreferences.lastSyncTimestamp().set(Date().time) + syncPreferences.lastSyncTimestamp.set(Date().time) notifier.showSyncSuccess("Sync completed successfully") return } @@ -240,7 +240,7 @@ class SyncManager( ) // update the sync timestamp - syncPreferences.lastSyncTimestamp().set(Date().time) + syncPreferences.lastSyncTimestamp.set(Date().time) } else { logcat(LogPriority.ERROR) { "Failed to write sync data to file" } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncNotifier.kt index 424a4ddcf..a25acc73b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/sync/SyncNotifier.kt @@ -42,7 +42,7 @@ class SyncNotifier(private val context: Context) { val builder = with(progressNotificationBuilder) { setContentTitle(context.getString(R.string.syncing_library)) - if (!preferences.hideNotificationContent().get()) { + if (!preferences.hideNotificationContent.get()) { setContentText(content) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/GoogleDriveSyncService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/GoogleDriveSyncService.kt index 8357e1a4b..613f5c115 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/GoogleDriveSyncService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/GoogleDriveSyncService.kt @@ -259,8 +259,8 @@ class GoogleDriveService(private val context: Context) { * and setting up the service using the obtained tokens. */ private fun initGoogleDriveService() { - val accessToken = syncPreferences.googleDriveAccessToken().get() - val refreshToken = syncPreferences.googleDriveRefreshToken().get() + val accessToken = syncPreferences.googleDriveAccessToken.get() + val refreshToken = syncPreferences.googleDriveRefreshToken.get() if (accessToken == "" || refreshToken == "") { driveService = null @@ -312,7 +312,7 @@ class GoogleDriveService(private val context: Context) { .build() } internal suspend fun refreshToken() = withIOContext { - val refreshToken = syncPreferences.googleDriveRefreshToken().get() + val refreshToken = syncPreferences.googleDriveRefreshToken.get() val jsonFactory: JsonFactory = JacksonFactory.getDefaultInstance() val secrets = GoogleClientSecrets.load( @@ -336,7 +336,7 @@ class GoogleDriveService(private val context: Context) { credential.refreshToken() val newAccessToken = credential.accessToken // Save the new access token - syncPreferences.googleDriveAccessToken().set(newAccessToken) + syncPreferences.googleDriveAccessToken.set(newAccessToken) setupGoogleDriveService(newAccessToken, credential.refreshToken) } catch (e: TokenResponseException) { if (e.details.error == "invalid_grant") { @@ -425,8 +425,8 @@ class GoogleDriveService(private val context: Context) { val refreshToken = tokenResponse.refreshToken // Save the tokens to SyncPreferences - syncPreferences.googleDriveAccessToken().set(accessToken) - syncPreferences.googleDriveRefreshToken().set(refreshToken) + syncPreferences.googleDriveAccessToken.set(accessToken) + syncPreferences.googleDriveRefreshToken.set(refreshToken) setupGoogleDriveService(accessToken, refreshToken) initGoogleDriveService() diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncService.kt index 7b5509643..5278f39ea 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncService.kt @@ -136,7 +136,7 @@ abstract class SyncService( "Starting merge. Local list size: ${localMangaListSafe.size}, Remote list size: ${remoteMangaListSafe.size}" } - val lastSyncTime = syncPreferences.lastSyncTimestamp().get().milliseconds.inWholeSeconds + val lastSyncTime = syncPreferences.lastSyncTimestamp.get().milliseconds.inWholeSeconds val syncOptions = syncPreferences.getSyncSettings() val mergedList = (localMangaMap.keys + remoteMangaMap.keys).distinct().mapNotNull { compositeKey -> @@ -319,7 +319,7 @@ abstract class SyncService( val localMapByUid = localCategoriesList.filter { it.uid != 0L }.associateBy { it.uid } val localMapByName = localCategoriesList.associateBy { it.name } - val lastSyncTime = syncPreferences.lastSyncTimestamp().get() + val lastSyncTime = syncPreferences.lastSyncTimestamp.get() remoteCategoriesList.forEach { remote -> var localMatch: BackupCategory? = null diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncYomiSyncService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncYomiSyncService.kt index bdeb602e2..5d0447fec 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncYomiSyncService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/sync/service/SyncYomiSyncService.kt @@ -99,12 +99,12 @@ class SyncYomiSyncService( } private suspend fun pullSyncData(): Pair { - val host = syncPreferences.clientHost().get() - val apiKey = syncPreferences.clientAPIKey().get() + val host = syncPreferences.clientHost.get() + val apiKey = syncPreferences.clientAPIKey.get() val downloadUrl = "$host/api/sync/content" val headersBuilder = Headers.Builder().add("X-API-Token", apiKey) - val lastETag = syncPreferences.lastSyncEtag().get() + val lastETag = syncPreferences.lastSyncEtag.get() if (lastETag != "") { headersBuilder.add("If-None-Match", lastETag) } @@ -163,8 +163,8 @@ class SyncYomiSyncService( private suspend fun pushSyncData(syncData: SyncData, eTag: String): Boolean { val backup = syncData.backup ?: return true - val host = syncPreferences.clientHost().get() - val apiKey = syncPreferences.clientAPIKey().get() + val host = syncPreferences.clientHost.get() + val apiKey = syncPreferences.clientAPIKey.get() val uploadUrl = "$host/api/sync/content" val timeout = 30L @@ -198,7 +198,7 @@ class SyncYomiSyncService( if (response.isSuccessful) { val newETag = response.headers["ETag"] .takeIf { it?.isNotEmpty() == true } ?: throw SyncYomiException("Missing ETag") - syncPreferences.lastSyncEtag().set(newETag) + syncPreferences.lastSyncEtag.set(newETag) logcat(LogPriority.DEBUG) { "SyncYomi sync completed" } return true } else if (response.code == HttpStatus.SC_PRECONDITION_FAILED) { @@ -216,8 +216,8 @@ class SyncYomiSyncService( private suspend fun reportSyncEvent(event: SyncEventStatus, message: String? = null) { withContext(NonCancellable) { try { - val host = syncPreferences.clientHost().get() - val apiKey = syncPreferences.clientAPIKey().get() + val host = syncPreferences.clientHost.get() + val apiKey = syncPreferences.clientAPIKey.get() val url = "$host/api/sync/event" val headersBuilder = Headers.Builder().add("X-API-Token", apiKey) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt index 918f317db..af85bdf44 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt @@ -44,7 +44,7 @@ class Anilist(id: Long) : BaseTracker(id, "AniList"), DeletableTracker { override val supportsPrivateTracking: Boolean = true - private val scorePreference = trackPreferences.anilistScoreType() + private val scorePreference = trackPreferences.anilistScoreType init { // If the preference is an int from APIv1, logout user to force using APIv2 diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistUtils.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistUtils.kt index 5e45f8da9..59d0937a6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistUtils.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistUtils.kt @@ -17,7 +17,7 @@ fun Track.toApiStatus() = when (status) { private val preferences: TrackPreferences by injectLazy() -fun DomainTrack.toApiScore(): String = when (preferences.anilistScoreType().get()) { +fun DomainTrack.toApiScore(): String = when (preferences.anilistScoreType.get()) { // 10 point "POINT_10" -> (score.toInt() / 10).toString() // 100 point diff --git a/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt b/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt index 0df083fd6..30ed8ae9b 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt @@ -64,7 +64,7 @@ class AppModule(val app: Application) : InjektModule { addSingletonFactory { // SY --> - if (securityPreferences.encryptDatabase().get()) { + if (securityPreferences.encryptDatabase.get()) { System.loadLibrary("sqlcipher") return@addSingletonFactory AndroidSqliteDriver( diff --git a/app/src/main/java/eu/kanade/tachiyomi/di/PreferenceModule.kt b/app/src/main/java/eu/kanade/tachiyomi/di/PreferenceModule.kt index 742664426..e72c13d11 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/di/PreferenceModule.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/di/PreferenceModule.kt @@ -30,7 +30,7 @@ class PreferenceModule(val app: Application) : InjektModule { addSingletonFactory { NetworkPreferences( preferenceStore = get(), - verboseLogging = isDevFlavor, + verboseLoggingDefault = isDevFlavor, ) } addSingletonFactory { diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt index 9d20bc6bd..5fc15316f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt @@ -88,7 +88,7 @@ class ExtensionManager( ExtensionInstallReceiver(InstallationListener()).register(context) } - private var subLanguagesEnabledOnFirstRun = preferences.enabledLanguages().isSet() + private var subLanguagesEnabledOnFirstRun = preferences.enabledLanguages.isSet() fun getExtensionPackage(sourceId: Long): String? { return installedExtensionsFlow.value.find { extension -> @@ -161,7 +161,7 @@ class ExtensionManager( // EXH --> private fun Map.filterNotBlacklisted(): Map { - val blacklistEnabled = preferences.enableSourceBlacklist().get() + val blacklistEnabled = preferences.enableSourceBlacklist.get() return filterNot { (_, extension) -> extension.isBlacklisted(blacklistEnabled) .also { @@ -170,7 +170,7 @@ class ExtensionManager( } } - private fun Extension.isBlacklisted(blacklistEnabled: Boolean = preferences.enableSourceBlacklist().get()): Boolean { + private fun Extension.isBlacklisted(blacklistEnabled: Boolean = preferences.enableSourceBlacklist.get()): Boolean { return pkgName in BlacklistedSources.BLACKLISTED_EXTENSIONS && blacklistEnabled } // EXH <-- @@ -215,12 +215,12 @@ class ExtensionManager( .map(Extension.Available.Source::lang) val deviceLanguage = Locale.getDefault().language - val defaultLanguages = preferences.enabledLanguages().defaultValue() + val defaultLanguages = preferences.enabledLanguages.defaultValue() val languagesToEnable = availableLanguages.filter { it != deviceLanguage && it.startsWith(deviceLanguage) } - preferences.enabledLanguages().set(defaultLanguages + languagesToEnable) + preferences.enabledLanguages.set(defaultLanguages + languagesToEnable) subLanguagesEnabledOnFirstRun = true } @@ -231,7 +231,7 @@ class ExtensionManager( */ private fun updatedInstalledExtensionsStatuses(availableExtensions: List) { if (availableExtensions.isEmpty()) { - preferences.extensionUpdatesCount().set(0) + preferences.extensionUpdatesCount.set(0) return } @@ -429,7 +429,7 @@ class ExtensionManager( private fun updatePendingUpdatesCount() { val pendingUpdateCount = installedExtensionMapFlow.value.values.count { it.hasUpdate } - preferences.extensionUpdatesCount().set(pendingUpdateCount) + preferences.extensionUpdatesCount.set(pendingUpdateCount) if (pendingUpdateCount == 0) { ExtensionUpdateNotifier(context).dismiss() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionApi.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionApi.kt index 7df837964..3e9d50e2b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionApi.kt @@ -93,7 +93,7 @@ internal class ExtensionApi { } // SY --> - val blacklistEnabled = sourcePreferences.enableSourceBlacklist().get() + val blacklistEnabled = sourcePreferences.enableSourceBlacklist.get() // SY <-- val installedExtensions = ExtensionLoader.loadExtensions(context) @@ -155,7 +155,7 @@ internal class ExtensionApi { // SY --> private fun Extension.isBlacklisted( - blacklistEnabled: Boolean = sourcePreferences.enableSourceBlacklist().get(), + blacklistEnabled: Boolean = sourcePreferences.enableSourceBlacklist.get(), ): Boolean { return pkgName in BlacklistedSources.BLACKLISTED_EXTENSIONS && blacklistEnabled } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt index 2b675ae60..dcf322f4c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionUpdateNotifier.kt @@ -29,7 +29,7 @@ class ExtensionUpdateNotifier( names.size, ), ) - if (!securityPreferences.hideNotificationContent().get()) { + if (!securityPreferences.hideNotificationContent.get()) { val extNames = names.joinToString(", ") setContentText(extNames) setStyle(NotificationCompat.BigTextStyle().bigText(extNames)) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt index 2b88d3b40..5eae3fe47 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstaller.kt @@ -39,7 +39,7 @@ internal class ExtensionInstaller( private val scope = CoroutineScope(Dispatchers.IO) private val activeJobs = mutableMapOf() private val activeSteps = mutableMapOf>() - private val extensionInstaller = Injekt.get().extensionInstaller() + private val extensionInstaller = Injekt.get().extensionInstaller private val httpClient: OkHttpClient = Injekt.get().client diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt index a55dd22a6..02f150d8b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt @@ -44,7 +44,7 @@ internal object ExtensionLoader { private val preferences: SourcePreferences by injectLazy() private val trustExtension: TrustExtension by injectLazy() private val loadNsfwSource by lazy { - preferences.showNsfwSource().get() + preferences.showNsfwSource.get() } private const val EXTENSION_FEATURE = "tachiyomi.extension" diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt b/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt index f620a8639..c3af1f0b8 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt @@ -79,23 +79,25 @@ class AndroidSourceManager( scope.launch { extensionManager.installedExtensionsFlow // SY --> - .combine(exhPreferences.enableExhentai().changes()) { extensions, enableExhentai -> + .combine(exhPreferences.enableExhentai.changes()) { extensions, enableExhentai -> extensions to enableExhentai } // SY <-- .collectLatest { (extensions, enableExhentai) -> - val mutableMap = ConcurrentHashMap( + val mutableMap: ConcurrentHashMap = ConcurrentHashMap( mapOf( LocalSource.ID to LocalSource( context, Injekt.get(), Injekt.get(), // SY --> - sourcePreferences.allowLocalSourceHiddenFolders()::get, + sourcePreferences.allowLocalSourceHiddenFolders::get, // SY <-- ), ), - ).apply { + ) + + mutableMap.apply { // SY --> put(EH_SOURCE_ID, EHentai(EH_SOURCE_ID, false, context)) if (enableExhentai) { @@ -104,6 +106,7 @@ class AndroidSourceManager( put(MERGED_SOURCE_ID, MergedSource()) // SY <-- } + extensions.forEach { extension -> extension.sources.mapNotNull { it.toInternalSource() }.forEach { mutableMap[it.id] = it diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt index 66d20f32b..335d5dde4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt @@ -9,7 +9,7 @@ import uy.kohesive.injekt.api.get fun Source.getNameForMangaInfo( // SY --> mergeSources: List? = null, - enabledLanguages: List = Injekt.get().enabledLanguages().get() + enabledLanguages: List = Injekt.get().enabledLanguages.get() .filterNot { it in listOf("all", "other") }, // SY <-- ): String { diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt index 2f5cde933..dc488400f 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt @@ -476,7 +476,7 @@ class EHentai( } private fun T.checkValid(): MangasPage = - if (exh && mangas.isEmpty() && exhPreferences.igneousVal().get().equals("mystery", true)) { + if (exh && mangas.isEmpty() && exhPreferences.igneousVal.get().equals("mystery", true)) { throw Exception( "Invalid igneous cookie, try re-logging or finding a correct one to input in the login menu", ) @@ -879,30 +879,30 @@ class EHentai( } fun spPref() = if (exh) { - exhPreferences.exhSettingsProfile() + exhPreferences.exhSettingsProfile } else { - exhPreferences.ehSettingsProfile() + exhPreferences.ehSettingsProfile } private fun rawCookies(sp: Int): Map { val cookies: MutableMap = mutableMapOf() - if (exhPreferences.enableExhentai().get()) { - cookies[EhLoginActivity.MEMBER_ID_COOKIE] = exhPreferences.memberIdVal().get() - cookies[EhLoginActivity.PASS_HASH_COOKIE] = exhPreferences.passHashVal().get() - cookies[EhLoginActivity.IGNEOUS_COOKIE] = exhPreferences.igneousVal().get() + if (exhPreferences.enableExhentai.get()) { + cookies[EhLoginActivity.MEMBER_ID_COOKIE] = exhPreferences.memberIdVal.get() + cookies[EhLoginActivity.PASS_HASH_COOKIE] = exhPreferences.passHashVal.get() + cookies[EhLoginActivity.IGNEOUS_COOKIE] = exhPreferences.igneousVal.get() cookies["sp"] = sp.toString() - val sessionKey = exhPreferences.exhSettingsKey().get() + val sessionKey = exhPreferences.exhSettingsKey.get() if (sessionKey.isNotBlank()) { cookies["sk"] = sessionKey } - val sessionCookie = exhPreferences.exhSessionCookie().get() + val sessionCookie = exhPreferences.exhSessionCookie.get() if (sessionCookie.isNotBlank()) { cookies["s"] = sessionCookie } - val hathPerksCookie = exhPreferences.exhHathPerksCookies().get() + val hathPerksCookie = exhPreferences.exhHathPerksCookies.get() if (hathPerksCookie.isNotBlank()) { cookies["hath_perks"] = hathPerksCookie } @@ -949,7 +949,7 @@ class EHentai( ToplistOptions(), Filter.Separator(), AutoCompleteTags(), - Watched(isEnabled = exhPreferences.exhWatchedListDefaultState().get()), + Watched(isEnabled = exhPreferences.exhWatchedListDefaultState.get()), GenreGroup(), AdvancedGroup(), ReverseFilter(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate.kt index e80acfd08..c849eec23 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/SecureActivityDelegate.kt @@ -48,14 +48,14 @@ interface SecureActivityDelegate { fun onApplicationStopped() { val preferences = Injekt.get() - if (!preferences.useAuthenticator().get()) return + if (!preferences.useAuthenticator.get()) return if (!AuthenticatorUtil.isAuthenticating) { // Return if app is closed in locked state if (requireUnlock) return // Save app close time if lock is delayed - if (preferences.lockAppAfter().get() > 0) { - preferences.lastAppClosed().set(System.currentTimeMillis()) + if (preferences.lockAppAfter.get() > 0) { + preferences.lastAppClosed.set(System.currentTimeMillis()) } } } @@ -63,7 +63,7 @@ interface SecureActivityDelegate { // SY --> private fun canLockNow(preferences: SecurityPreferences): Boolean { val today: Calendar = Calendar.getInstance() - val timeRanges = preferences.authenticatorTimeRanges().get() + val timeRanges = preferences.authenticatorTimeRanges.get() .mapNotNull { TimeRange.fromPreferenceString(it) } val canLockNow = if (timeRanges.isNotEmpty()) { val now = today.get(Calendar.HOUR_OF_DAY).hours + today.get(Calendar.MINUTE).minutes @@ -72,7 +72,7 @@ interface SecureActivityDelegate { true } - val lockedDays = preferences.authenticatorDays().get() + val lockedDays = preferences.authenticatorDays.get() val canLockToday = lockedDays == LOCK_ALL_DAYS || when (today.get(Calendar.DAY_OF_WEEK)) { Calendar.SUNDAY -> (lockedDays and LOCK_SUNDAY) == LOCK_SUNDAY @@ -94,15 +94,15 @@ interface SecureActivityDelegate { */ fun onApplicationStart() { val preferences = Injekt.get() - if (!preferences.useAuthenticator().get()) return + if (!preferences.useAuthenticator.get()) return - val lastClosedPref = preferences.lastAppClosed() + val lastClosedPref = preferences.lastAppClosed // `requireUnlock` can be true on process start or if app was closed in locked state if (!AuthenticatorUtil.isAuthenticating && !requireUnlock) { requireUnlock = /* SY --> */ canLockNow(preferences) && - /* SY <-- */ when (val lockDelay = preferences.lockAppAfter().get()) { + /* SY <-- */ when (val lockDelay = preferences.lockAppAfter.get()) { -1 -> false // Never 0 -> true // Always else -> lastClosedPref.get() + lockDelay * 60_000 <= System.currentTimeMillis() @@ -139,8 +139,8 @@ class SecureActivityDelegateImpl : SecureActivityDelegate, DefaultLifecycleObser } private fun setSecureScreen() { - val secureScreenFlow = securityPreferences.secureScreen().changes() - val incognitoModeFlow = preferences.incognitoMode().changes() + val secureScreenFlow = securityPreferences.secureScreen.changes() + val incognitoModeFlow = preferences.incognitoMode.changes() combine(secureScreenFlow, incognitoModeFlow) { secureScreen, incognitoMode -> secureScreen == SecurityPreferences.SecureScreenMode.ALWAYS || (secureScreen == SecurityPreferences.SecureScreenMode.INCOGNITO && incognitoMode) @@ -150,7 +150,7 @@ class SecureActivityDelegateImpl : SecureActivityDelegate, DefaultLifecycleObser } private fun setAppLock() { - if (!securityPreferences.useAuthenticator().get()) return + if (!securityPreferences.useAuthenticator.get()) return if (activity.isAuthenticationSupported()) { if (!SecureActivityDelegate.requireUnlock) return activity.startActivity(Intent(activity, UnlockActivity::class.java)) @@ -161,7 +161,7 @@ class SecureActivityDelegateImpl : SecureActivityDelegate, DefaultLifecycleObser activity.overridePendingTransition(0, 0) } } else { - securityPreferences.useAuthenticator().set(false) + securityPreferences.useAuthenticator.set(false) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate.kt index 9bd32b7ed..f0c983e0d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/delegate/ThemingDelegate.kt @@ -23,7 +23,7 @@ interface ThemingDelegate { class ThemingDelegateImpl : ThemingDelegate { override fun applyAppTheme(activity: Activity) { val uiPreferences = Injekt.get() - ThemingDelegate.getThemeResIds(uiPreferences.appTheme().get(), uiPreferences.themeDarkAmoled().get()) + ThemingDelegate.getThemeResIds(uiPreferences.appTheme.get(), uiPreferences.themeDarkAmoled.get()) .forEach(activity::setTheme) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt index 1e11005ea..c9ffecb8e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt @@ -66,8 +66,8 @@ data object BrowseTab : Tab { val context = LocalContext.current val scope = rememberCoroutineScope() // SY --> - val hideFeedTab by remember { Injekt.get().hideFeedTab().asState(scope) } - val feedTabInFront by remember { Injekt.get().feedTabInFront().asState(scope) } + val hideFeedTab by remember { Injekt.get().hideFeedTab.asState(scope) } + val feedTabInFront by remember { Injekt.get().feedTabInFront.asState(scope) } // SY <-- // Hoisted for extensions tab's search bar diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionFilterScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionFilterScreenModel.kt index 7cd83923f..d78af8ca9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionFilterScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionFilterScreenModel.kt @@ -37,7 +37,7 @@ class ExtensionFilterScreenModel( screenModelScope.launch { combine( getExtensionLanguages.subscribe(), - preferences.enabledLanguages().changes(), + preferences.enabledLanguages.changes(), ) { a, b -> a to b } .catch { throwable -> logcat(LogPriority.ERROR, throwable) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt index 3b94d0996..666c04424 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt @@ -98,11 +98,11 @@ class ExtensionsScreenModel( screenModelScope.launchIO { findAvailableExtensions() } - preferences.extensionUpdatesCount().changes() + preferences.extensionUpdatesCount.changes() .onEach { mutableState.update { state -> state.copy(updates = it) } } .launchIn(screenModelScope) - basePreferences.extensionInstaller().changes() + basePreferences.extensionInstaller.changes() .onEach { mutableState.update { state -> state.copy(installer = it) } } .launchIn(screenModelScope) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreenModel.kt index 7997f7262..e763fb6b4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsScreenModel.kt @@ -86,7 +86,7 @@ class ExtensionDetailsScreenModel( } } launch { - preferences.incognitoExtensions() + preferences.incognitoExtensions .changes() .map { pkgName in it } .distinctUntilChanged() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt index 6c16f8729..d7e45792a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt @@ -156,9 +156,9 @@ open class FeedScreenModel( } fun getEnabledSources(): ImmutableList { - val languages = sourcePreferences.enabledLanguages().get() - val pinnedSources = sourcePreferences.pinnedSources().get() - val disabledSources = sourcePreferences.disabledSources().get() + val languages = sourcePreferences.enabledLanguages.get() + val pinnedSources = sourcePreferences.pinnedSources.get() + val disabledSources = sourcePreferences.disabledSources.get() .mapNotNull { it.toLongOrNull() } val list = sourceManager.getVisibleCatalogueSources() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt index 6ef54d438..ff5f5d315 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt @@ -64,7 +64,7 @@ fun Screen.feedTab(): TabContent { state = state, contentPadding = contentPadding, onClickSavedSearch = { savedSearch, source -> - screenModel.sourcePreferences.lastUsedSource().set(savedSearch.source) + screenModel.sourcePreferences.lastUsedSource.set(savedSearch.source) navigator.push( BrowseSourceScreen( source.id, @@ -74,7 +74,7 @@ fun Screen.feedTab(): TabContent { ) }, onClickSource = { source -> - screenModel.sourcePreferences.lastUsedSource().set(source.id) + screenModel.sourcePreferences.lastUsedSource.set(source.id) navigator.push( BrowseSourceScreen( source.id, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt index 0b01f2a60..8afa1a784 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt @@ -18,7 +18,7 @@ class MigrationSourceHolder(view: View, val adapter: MigrationSourceAdapter) : } fun bind(source: HttpSource, sourceEnabled: Boolean) { - val isMultiLanguage = adapter.sourcePreferences.enabledLanguages().get().size > 1 + val isMultiLanguage = adapter.sourcePreferences.enabledLanguages.get().size > 1 // Set capitalized title. val sourceName = if (isMultiLanguage) source.toString() else source.name.capitalize() binding.title.text = sourceName diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt index 87f8a074d..ddb89c480 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt @@ -19,7 +19,7 @@ class MigrateSearchScreenModel( private val sourcePreferences: SourcePreferences = Injekt.get(), ) : SearchScreenModel() { - private val migrationSources by lazy { sourcePreferences.migrationSources().get() } + private val migrationSources by lazy { sourcePreferences.migrationSources.get() } override val sortComparator = { map: Map -> compareBy( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceScreenModel.kt index 8968d62b8..5f41c137e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceScreenModel.kt @@ -49,11 +49,11 @@ class MigrateSourceScreenModel( } } - preferences.migrationSortingDirection().changes() + preferences.migrationSortingDirection.changes() .onEach { mutableState.update { state -> state.copy(sortingDirection = it) } } .launchIn(screenModelScope) - preferences.migrationSortingMode().changes() + preferences.migrationSortingMode.changes() .onEach { mutableState.update { state -> state.copy(sortingMode = it) } } .launchIn(screenModelScope) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterScreenModel.kt index 1cd441e90..606e070ac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterScreenModel.kt @@ -28,8 +28,8 @@ class SourcesFilterScreenModel( screenModelScope.launch { combine( getLanguagesWithSources.subscribe(), - preferences.enabledLanguages().changes(), - preferences.disabledSources().changes(), + preferences.enabledLanguages.changes(), + preferences.disabledSources.changes(), ) { a, b, c -> Triple(a, b, c) } .catch { throwable -> mutableState.update { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreenModel.kt index 7780db4d1..097b1ac33 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreenModel.kt @@ -55,7 +55,7 @@ class SourcesScreenModel( private val _events = Channel(Int.MAX_VALUE) val events = _events.receiveAsFlow() - val useNewSourceNavigation by uiPreferences.useNewSourceNavigation().asState(screenModelScope) + val useNewSourceNavigation by uiPreferences.useNewSourceNavigation.asState(screenModelScope) init { // SY --> @@ -73,11 +73,11 @@ class SourcesScreenModel( .flowOn(Dispatchers.IO) .launchIn(screenModelScope) - sourcePreferences.dataSaver().changes() + sourcePreferences.dataSaver.changes() .onEach { mutableState.update { it.copy( - dataSaverEnabled = sourcePreferences.dataSaver().get() != DataSaver.NONE, + dataSaverEnabled = sourcePreferences.dataSaver.get() != DataSaver.NONE, ) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt index 787c929a6..7a9f8c631 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt @@ -112,14 +112,14 @@ open class BrowseSourceScreenModel( // SY <-- ) : StateScreenModel(State(Listing.valueOf(listingQuery))) { - var displayMode by sourcePreferences.sourceDisplayMode().asState(screenModelScope) + var displayMode by sourcePreferences.sourceDisplayMode.asState(screenModelScope) val source = sourceManager.getOrStub(sourceId) // SY --> - val ehentaiBrowseDisplayMode by exhPreferences.enhancedEHentaiView().asState(screenModelScope) + val ehentaiBrowseDisplayMode by exhPreferences.enhancedEHentaiView.asState(screenModelScope) - val startExpanded by uiPreferences.expandFilters().asState(screenModelScope) + val startExpanded by uiPreferences.expandFilters.asState(screenModelScope) private val filterSerializer = FilterSerializer() @@ -146,7 +146,7 @@ open class BrowseSourceScreenModel( } if (!getIncognitoState.await(source.id)) { - sourcePreferences.lastUsedSource().set(source.id) + sourcePreferences.lastUsedSource.set(source.id) } // SY --> @@ -180,7 +180,7 @@ open class BrowseSourceScreenModel( /** * Flow of Pager flow tied to [State.listing] */ - private val hideInLibraryItems = sourcePreferences.hideInLibraryItems().get() + private val hideInLibraryItems = sourcePreferences.hideInLibraryItems.get() val mangaPagerFlowFlow = state.map { it.listing } .distinctUntilChanged() .map { listing -> @@ -206,9 +206,9 @@ open class BrowseSourceScreenModel( fun getColumnsPreference(orientation: Int): GridCells { val isLandscape = orientation == Configuration.ORIENTATION_LANDSCAPE val columns = if (isLandscape) { - libraryPreferences.landscapeColumns() + libraryPreferences.landscapeColumns } else { - libraryPreferences.portraitColumns() + libraryPreferences.portraitColumns }.get() return if (columns == 0) GridCells.Adaptive(128.dp) else GridCells.Fixed(columns) } @@ -344,7 +344,7 @@ open class BrowseSourceScreenModel( fun addFavorite(manga: Manga) { screenModelScope.launch { val categories = getCategories() - val defaultCategoryId = libraryPreferences.defaultCategory().get() + val defaultCategoryId = libraryPreferences.defaultCategory.get() val defaultCategory = categories.find { it.id == defaultCategoryId.toLong() } when { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt index 5acad9cf9..7b1c53c2c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedScreenModel.kt @@ -76,7 +76,7 @@ open class SourceFeedScreenModel( private val coroutineDispatcher = Executors.newFixedThreadPool(5).asCoroutineDispatcher() - val startExpanded by uiPreferences.expandFilters().asState(screenModelScope) + val startExpanded by uiPreferences.expandFilters.asState(screenModelScope) init { if (source is CatalogueSource) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt index 1a68e40bd..7769c7314 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/SearchScreenModel.kt @@ -48,9 +48,9 @@ abstract class SearchScreenModel( private val coroutineDispatcher = Executors.newFixedThreadPool(5).asCoroutineDispatcher() private var searchJob: Job? = null - private val enabledLanguages = sourcePreferences.enabledLanguages().get() - private val disabledSources = sourcePreferences.disabledSources().get() - protected val pinnedSources = sourcePreferences.pinnedSources().get() + private val enabledLanguages = sourcePreferences.enabledLanguages.get() + private val disabledSources = sourcePreferences.disabledSources.get() + protected val pinnedSources = sourcePreferences.pinnedSources.get() private var lastQuery: String? = null private var lastSourceFilter: SourceFilter? = null @@ -67,7 +67,7 @@ abstract class SearchScreenModel( init { screenModelScope.launch { - preferences.globalSearchFilterState().changes().collectLatest { state -> + preferences.globalSearchFilterState.changes().collectLatest { state -> mutableState.update { it.copy(onlyShowHasResults = state) } } } @@ -123,7 +123,7 @@ abstract class SearchScreenModel( } fun toggleFilterResults() { - preferences.globalSearchFilterState().toggle() + preferences.globalSearchFilterState.toggle() } fun search() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/category/biometric/BiometricTimesScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/category/biometric/BiometricTimesScreenModel.kt index 26b15b154..6c1ddf7da 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/category/biometric/BiometricTimesScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/category/biometric/BiometricTimesScreenModel.kt @@ -29,7 +29,7 @@ class BiometricTimesScreenModel( init { screenModelScope.launchIO { // todo usecase - preferences.authenticatorTimeRanges().changes() + preferences.authenticatorTimeRanges.changes() .collectLatest { times -> val context = Injekt.get() mutableState.update { @@ -58,7 +58,7 @@ class BiometricTimesScreenModel( return@launchIO } - preferences.authenticatorTimeRanges() += timeRange.toPreferenceString() + preferences.authenticatorTimeRanges += timeRange.toPreferenceString() } } @@ -71,7 +71,7 @@ class BiometricTimesScreenModel( // todo usecase screenModelScope.launchIO { val state = state.value as? BiometricTimesScreenState.Success ?: return@launchIO - preferences.authenticatorTimeRanges().set( + preferences.authenticatorTimeRanges.set( state.timeRanges.filterNot { it == timeRange }.map { it.timeRange.toPreferenceString() }.toSet(), ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryScreenModel.kt index 32a4f7a69..411960320 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryScreenModel.kt @@ -189,7 +189,7 @@ class HistoryScreenModel( screenModelScope.launchIO { // Move to default category if applicable val categories = getCategories() - val defaultCategoryId = libraryPreferences.defaultCategory().get().toLong() + val defaultCategoryId = libraryPreferences.defaultCategory.get().toLong() val defaultCategory = categories.find { it.id == defaultCategoryId } when { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt index 73ba3a93f..4099777f2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt @@ -69,7 +69,7 @@ data object HistoryTab : Tab { override fun isEnabled(): Boolean { val scope = rememberCoroutineScope() return remember { - Injekt.get().showNavHistory().asState(scope) + Injekt.get().showNavHistory.asState(scope) }.value } // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt index 482df57db..9b3b542c6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt @@ -90,7 +90,7 @@ object HomeScreen : Screen() { // SY --> val scope = rememberCoroutineScope() val alwaysShowLabel by remember { - Injekt.get().bottomBarLabels().asState(scope) + Injekt.get().bottomBarLabels.asState(scope) } // SY <-- @@ -266,8 +266,8 @@ object HomeScreen : Screen() { val count by produceState(initialValue = 0) { val pref = Injekt.get() combine( - pref.newShowUpdatesCount().changes(), - pref.newUpdatesCount().changes(), + pref.newShowUpdatesCount.changes(), + pref.newUpdatesCount.changes(), ) { show, count -> if (show) count else 0 } .collectLatest { value = it } } @@ -288,7 +288,7 @@ object HomeScreen : Screen() { BrowseTab::class.isInstance(tab) -> { val count by produceState(initialValue = 0) { - Injekt.get().extensionUpdatesCount().changes() + Injekt.get().extensionUpdatesCount.changes() .collectLatest { value = it } } if (count > 0) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index b89beb2bb..7d3285418 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -159,7 +159,7 @@ class LibraryScreenModel( init { mutableState.update { state -> - state.copy(activeCategoryIndex = libraryPreferences.lastUsedCategory().get()) + state.copy(activeCategoryIndex = libraryPreferences.lastUsedCategory.get()) } screenModelScope.launchIO { combine( @@ -177,7 +177,7 @@ class LibraryScreenModel( // SY --> combine( state.map { it.groupType }.distinctUntilChanged(), - libraryPreferences.sortingMode().changes(), + libraryPreferences.sortingMode.changes(), ::Pair, ), // SY <-- @@ -240,7 +240,7 @@ class LibraryScreenModel( data.tracksMap, data.loggedInTrackerIds, // SY --> - libraryPreferences.sortingMode().get().takeIf { groupType != LibraryGroup.BY_DEFAULT }, + libraryPreferences.sortingMode.get().takeIf { groupType != LibraryGroup.BY_DEFAULT }, // SY <-- ) .let { @@ -267,9 +267,9 @@ class LibraryScreenModel( } combine( - libraryPreferences.categoryTabs().changes(), - libraryPreferences.categoryNumberOfItems().changes(), - libraryPreferences.showContinueReadingButton().changes(), + libraryPreferences.categoryTabs.changes(), + libraryPreferences.categoryNumberOfItems.changes(), + libraryPreferences.showContinueReadingButton.changes(), ) { a, b, c -> arrayOf(a, b, c) } .onEach { (showCategoryTabs, showMangaCount, showMangaContinueButton) -> mutableState.update { state -> @@ -310,9 +310,9 @@ class LibraryScreenModel( // SY --> combine( - exhPreferences.isHentaiEnabled().changes(), - sourcePreferences.disabledSources().changes(), - exhPreferences.enableExhentai().changes(), + exhPreferences.isHentaiEnabled.changes(), + sourcePreferences.disabledSources.changes(), + exhPreferences.enableExhentai.changes(), ) { isHentaiEnabled, disabledSources, enableExhentai -> isHentaiEnabled && (EH_SOURCE_ID.toString() !in disabledSources || enableExhentai) } @@ -324,14 +324,14 @@ class LibraryScreenModel( } .launchIn(screenModelScope) - libraryPreferences.groupLibraryBy().changes() + libraryPreferences.groupLibraryBy.changes() .onEach { mutableState.update { state -> state.copy(groupType = it) } } .launchIn(screenModelScope) - syncPreferences.syncService() + syncPreferences.syncService .changes() .distinctUntilChanged() .onEach { syncService -> @@ -481,7 +481,7 @@ class LibraryScreenModel( ): Map> { // SY --> val listOfTags by lazy { - libraryPreferences.sortTagsForLibrary().get() + libraryPreferences.sortTagsForLibrary.get() .asSequence() .mapNotNull { val list = it.split("|") @@ -583,7 +583,7 @@ class LibraryScreenModel( val sort = groupSort ?: key.sort if (sort.type == LibrarySort.Type.Random) { // SY <-- - return@mapValues value.shuffled(Random(libraryPreferences.randomSortSeed().get())) + return@mapValues value.shuffled(Random(libraryPreferences.randomSortSeed.get())) } val manga = value.mapNotNull { favoritesById[it] } @@ -600,21 +600,21 @@ class LibraryScreenModel( private fun getLibraryItemPreferencesFlow(): Flow { return combine( - libraryPreferences.downloadBadge().changes(), - libraryPreferences.unreadBadge().changes(), - libraryPreferences.localBadge().changes(), - libraryPreferences.languageBadge().changes(), - libraryPreferences.autoUpdateMangaRestrictions().changes(), + libraryPreferences.downloadBadge.changes(), + libraryPreferences.unreadBadge.changes(), + libraryPreferences.localBadge.changes(), + libraryPreferences.languageBadge.changes(), + libraryPreferences.autoUpdateMangaRestrictions.changes(), - preferences.downloadedOnly().changes(), - libraryPreferences.filterDownloaded().changes(), - libraryPreferences.filterUnread().changes(), - libraryPreferences.filterStarted().changes(), - libraryPreferences.filterBookmarked().changes(), - libraryPreferences.filterCompleted().changes(), - libraryPreferences.filterIntervalCustom().changes(), + preferences.downloadedOnly.changes(), + libraryPreferences.filterDownloaded.changes(), + libraryPreferences.filterUnread.changes(), + libraryPreferences.filterStarted.changes(), + libraryPreferences.filterBookmarked.changes(), + libraryPreferences.filterCompleted.changes(), + libraryPreferences.filterIntervalCustom.changes(), // SY --> - libraryPreferences.filterLewd().changes(), + libraryPreferences.filterLewd.changes(), // SY <-- ) { ItemPreferences( @@ -990,11 +990,11 @@ class LibraryScreenModel( } fun getDisplayMode(): PreferenceMutableState { - return libraryPreferences.displayMode().asState(screenModelScope) + return libraryPreferences.displayMode.asState(screenModelScope) } fun getColumnsForOrientation(isLandscape: Boolean): PreferenceMutableState { - return (if (isLandscape) libraryPreferences.landscapeColumns() else libraryPreferences.portraitColumns()) + return (if (isLandscape) libraryPreferences.landscapeColumns else libraryPreferences.portraitColumns) .asState(screenModelScope) } @@ -1270,7 +1270,7 @@ class LibraryScreenModel( } .coercedActiveCategoryIndex - libraryPreferences.lastUsedCategory().set(newIndex) + libraryPreferences.lastUsedCategory.set(newIndex) } fun openChangeCategoryDialog() { @@ -1434,13 +1434,13 @@ class LibraryScreenModel( } fun onAcceptSyncWarning() { - exhPreferences.exhShowSyncIntro().set(false) + exhPreferences.exhShowSyncIntro.set(false) } fun openFavoritesSyncDialog() { mutableState.update { it.copy( - dialog = if (exhPreferences.exhShowSyncIntro().get()) { + dialog = if (exhPreferences.exhShowSyncIntro.get()) { Dialog.SyncFavoritesWarning } else { Dialog.SyncFavoritesConfirm diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel.kt index 6c6755079..14023bae4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsScreenModel.kt @@ -38,7 +38,7 @@ class LibrarySettingsScreenModel( ) // SY --> - val grouping by libraryPreferences.groupLibraryBy().asState(screenModelScope) + val grouping by libraryPreferences.groupLibraryBy.asState(screenModelScope) // SY <-- fun toggleFilter(preference: (LibraryPreferences) -> Preference) { @@ -64,7 +64,7 @@ class LibrarySettingsScreenModel( // SY --> fun setGrouping(grouping: Int) { screenModelScope.launchIO { - libraryPreferences.groupLibraryBy().set(grouping) + libraryPreferences.groupLibraryBy.set(grouping) } } // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index f21b6c091..584e81691 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -184,7 +184,7 @@ class MainActivity : BaseActivity() { val context = LocalContext.current var incognito by remember { mutableStateOf(getIncognitoState.await(null)) } - val downloadOnly by preferences.downloadedOnly().collectAsState() + val downloadOnly by preferences.downloadedOnly.collectAsState() val indexing by downloadCache.isInitializing.collectAsState() val isSystemInDarkTheme = isSystemInDarkTheme() @@ -216,13 +216,13 @@ class MainActivity : BaseActivity() { handleIntentAction(intent, navigator) // Reset Incognito Mode on relaunch - preferences.incognitoMode().set(false) + preferences.incognitoMode.set(false) // SY --> initWhenIdle { // Upload settings - if (exhPreferences.enableExhentai().get() && - exhPreferences.exhShowSettingsUploadWarning().get() + if (exhPreferences.enableExhentai.get() && + exhPreferences.exhShowSettingsUploadWarning.get() ) { runExhConfigureDialog = true } @@ -277,7 +277,7 @@ class MainActivity : BaseActivity() { // Pop source-related screens when incognito mode is turned off LaunchedEffect(Unit) { - preferences.incognitoMode().changes() + preferences.incognitoMode.changes() .drop(1) .filter { !it } .onEach { @@ -327,14 +327,14 @@ class MainActivity : BaseActivity() { } setSplashScreenExitAnimation(splashScreen) - if (isLaunch && libraryPreferences.autoClearChapterCache().get()) { + if (isLaunch && libraryPreferences.autoClearChapterCache.get()) { lifecycleScope.launchIO { chapterCache.clear() } } // SY --> - if (!exhPreferences.isHentaiEnabled().get()) { + if (!exhPreferences.isHentaiEnabled.get()) { BlacklistedSources.HIDDEN_SOURCES += EH_SOURCE_ID BlacklistedSources.HIDDEN_SOURCES += EXH_SOURCE_ID } @@ -403,7 +403,7 @@ class MainActivity : BaseActivity() { val navigator = LocalNavigator.currentOrThrow LaunchedEffect(Unit) { - if (!preferences.shownOnboardingFlow().get() && navigator.lastItem !is OnboardingScreen) { + if (!preferences.shownOnboardingFlow.get() && navigator.lastItem !is OnboardingScreen) { navigator.push(OnboardingScreen()) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index 436c9ed29..647b0b97d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -212,14 +212,14 @@ class MangaScreenModel( private val filteredChapters: List? get() = successState?.processedChapters - val chapterSwipeStartAction = libraryPreferences.swipeToEndAction().get() - val chapterSwipeEndAction = libraryPreferences.swipeToStartAction().get() - var autoTrackState = trackPreferences.autoUpdateTrackOnMarkRead().get() + val chapterSwipeStartAction = libraryPreferences.swipeToEndAction.get() + val chapterSwipeEndAction = libraryPreferences.swipeToStartAction.get() + var autoTrackState = trackPreferences.autoUpdateTrackOnMarkRead.get() - private val skipFiltered by readerPreferences.skipFiltered().asState(screenModelScope) + private val skipFiltered by readerPreferences.skipFiltered.asState(screenModelScope) val isUpdateIntervalEnabled = - LibraryPreferences.MANGA_OUTSIDE_RELEASE_PERIOD in libraryPreferences.autoUpdateMangaRestrictions().get() + LibraryPreferences.MANGA_OUTSIDE_RELEASE_PERIOD in libraryPreferences.autoUpdateMangaRestrictions.get() private val selectedPositions: Array = arrayOf(-1, -1) // first and last selected index in list private val selectedChapterIds: HashSet = HashSet() @@ -430,8 +430,8 @@ class MangaScreenModel( isRefreshingData = needRefreshInfo || needRefreshChapter, dialog = null, // SY --> - showRecommendationsInOverflow = uiPreferences.recommendsInOverflow().get(), - showMergeInOverflow = uiPreferences.mergeInOverflow().get(), + showRecommendationsInOverflow = uiPreferences.recommendsInOverflow.get(), + showMergeInOverflow = uiPreferences.mergeInOverflow.get(), showMergeWithAnother = smartSearched, mergedData = mergedData, meta = raiseMetadata(meta, source), @@ -442,8 +442,8 @@ class MangaScreenModel( PagePreviewState.Unused }, alwaysShowReadingProgress = - readerPreferences.preserveReadingPosition().get() && manga.isEhBasedManga(), - previewsRowCount = uiPreferences.previewsRowCount().get(), + readerPreferences.preserveReadingPosition.get() && manga.isEhBasedManga(), + previewsRowCount = uiPreferences.previewsRowCount.get(), // SY <-- ) } @@ -792,7 +792,7 @@ class MangaScreenModel( // Now check if user previously set categories, when available val categories = getCategories() - val defaultCategoryId = libraryPreferences.defaultCategory().get().toLong() + val defaultCategoryId = libraryPreferences.defaultCategory.get().toLong() val defaultCategory = categories.find { it.id == defaultCategoryId } when { // Default category set @@ -1003,7 +1003,7 @@ class MangaScreenModel( val isLocal = manga.isLocal() // SY --> val isExhManga = manga.isEhBasedManga() - val enabledLanguages = Injekt.get().enabledLanguages().get() + val enabledLanguages = Injekt.get().enabledLanguages.get() .filterNot { it in listOf("all", "other") } // SY <-- return map { chapter -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt index 27cd243fe..772c0dbc6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt @@ -109,7 +109,7 @@ data class TrackInfoDialogHomeScreen( val context = LocalContext.current val screenModel = rememberScreenModel { Model(mangaId, sourceId) } - val dateFormat = remember { UiPreferences.dateFormat(Injekt.get().dateFormat().get()) } + val dateFormat = remember { UiPreferences.dateFormat(Injekt.get().dateFormat.get()) } val state by screenModel.state.collectAsState() // SY --> @@ -259,7 +259,7 @@ data class TrackInfoDialogHomeScreen( // SY --> fun newSearch(navigator: Navigator, item: TrackItem, mangaTitle: String) { screenModelScope.launchNonCancellable { - if (trackPreferences.resolveUsingSourceMetadata().get()) { + if (trackPreferences.resolveUsingSourceMetadata.get()) { // Check if the tracker id is contained in the metadata val result = getTrackerIdFromMetadata(item.tracker.id) if (result != null) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt index 5a82074bc..39a51e2c8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt @@ -98,12 +98,12 @@ private class MoreScreenModel( // SY <-- ) : ScreenModel { - var downloadedOnly by preferences.downloadedOnly().asState(screenModelScope) - var incognitoMode by preferences.incognitoMode().asState(screenModelScope) + var downloadedOnly by preferences.downloadedOnly.asState(screenModelScope) + var incognitoMode by preferences.incognitoMode.asState(screenModelScope) // SY --> - val showNavUpdates by uiPreferences.showNavUpdates().asState(screenModelScope) - val showNavHistory by uiPreferences.showNavHistory().asState(screenModelScope) + val showNavUpdates by uiPreferences.showNavUpdates.asState(screenModelScope) + val showNavHistory by uiPreferences.showNavHistory.asState(screenModelScope) // SY <-- private var _downloadQueueState: MutableStateFlow = MutableStateFlow(DownloadQueueState.Stopped) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/OnboardingScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/OnboardingScreen.kt index 7d0268636..3e8a36bf3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/OnboardingScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/OnboardingScreen.kt @@ -24,10 +24,10 @@ class OnboardingScreen : Screen() { val navigator = LocalNavigator.currentOrThrow val basePreferences = remember { Injekt.get() } - val shownOnboardingFlow by basePreferences.shownOnboardingFlow().collectAsState() + val shownOnboardingFlow by basePreferences.shownOnboardingFlow.collectAsState() val finishOnboarding: () -> Unit = { - basePreferences.shownOnboardingFlow().set(true) + basePreferences.shownOnboardingFlow.set(true) navigator.pop() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 71fc59b35..13e99e8b3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -247,7 +247,7 @@ class ReaderActivity : BaseActivity() { enableExhAutoScroll() // Finish when incognito mode is disabled - preferences.incognitoMode().changes() + preferences.incognitoMode.changes() .drop(1) .onEach { if (!it) finish() } .launchIn(lifecycleScope) @@ -309,7 +309,7 @@ class ReaderActivity : BaseActivity() { private fun ReaderActivityBinding.setComposeOverlay(): Unit = composeOverlay.setComposeContent { val state by viewModel.state.collectAsState() - val showPageNumber by readerPreferences.showPageNumber().collectAsState() + val showPageNumber by readerPreferences.showPageNumber.collectAsState() val settingsScreenModel = remember { ReaderSettingsScreenModel( readerState = viewModel.state, @@ -367,7 +367,7 @@ class ReaderActivity : BaseActivity() { screenModel = settingsScreenModel, onChange = { stringRes -> menuToggleToast?.cancel() - if (!readerPreferences.showReadingMode().get()) { + if (!readerPreferences.showReadingMode.get()) { menuToggleToast = toast(stringRes) } }, @@ -561,11 +561,11 @@ class ReaderActivity : BaseActivity() { @Composable private fun ContentOverlay(state: ReaderViewModel.State) { - val flashOnPageChange by readerPreferences.flashOnPageChange().collectAsState() + val flashOnPageChange by readerPreferences.flashOnPageChange.collectAsState() - val colorOverlayEnabled by readerPreferences.colorFilter().collectAsState() - val colorOverlay by readerPreferences.colorFilterValue().collectAsState() - val colorOverlayMode by readerPreferences.colorFilterMode().collectAsState() + val colorOverlayEnabled by readerPreferences.colorFilter.collectAsState() + val colorOverlay by readerPreferences.colorFilterValue.collectAsState() + val colorOverlayMode by readerPreferences.colorFilterMode.collectAsState() val colorOverlayBlendMode = remember(colorOverlayMode) { ReaderPreferences.ColorFilterMode.getOrNull(colorOverlayMode)?.second } @@ -589,14 +589,14 @@ class ReaderActivity : BaseActivity() { val isHttpSource = viewModel.getSource() is HttpSource - val cropBorderPaged by readerPreferences.cropBorders().collectAsState() - val cropBorderWebtoon by readerPreferences.cropBordersWebtoon().collectAsState() + val cropBorderPaged by readerPreferences.cropBorders.collectAsState() + val cropBorderWebtoon by readerPreferences.cropBordersWebtoon.collectAsState() val isPagerType = ReadingMode.isPagerType(viewModel.getMangaReadingMode()) // SY --> val readingMode = viewModel.getMangaReadingMode() val isWebtoon = ReadingMode.WEBTOON.flagValue == readingMode - val cropBorderContinuousVertical by readerPreferences.cropBordersContinuousVertical().collectAsState() + val cropBorderContinuousVertical by readerPreferences.cropBordersContinuousVertical.collectAsState() val cropEnabled = if (isPagerType) { cropBorderPaged } else if (isWebtoon) { @@ -605,13 +605,13 @@ class ReaderActivity : BaseActivity() { cropBorderContinuousVertical } val readerBottomButtons by remember { - readerPreferences.readerBottomButtons().changes().map { it.toImmutableSet() } + readerPreferences.readerBottomButtons.changes().map { it.toImmutableSet() } }.collectAsState(persistentSetOf()) - val dualPageSplitPaged by readerPreferences.dualPageSplitPaged().collectAsState() + val dualPageSplitPaged by readerPreferences.dualPageSplitPaged.collectAsState() - val forceHorizontalSeekbar by readerPreferences.forceHorizontalSeekbar().collectAsState() - val landscapeVerticalSeekbar by readerPreferences.landscapeVerticalSeekbar().collectAsState() - val leftHandedVerticalSeekbar by readerPreferences.leftVerticalSeekbar().collectAsState() + val forceHorizontalSeekbar by readerPreferences.forceHorizontalSeekbar.collectAsState() + val landscapeVerticalSeekbar by readerPreferences.landscapeVerticalSeekbar.collectAsState() + val leftHandedVerticalSeekbar by readerPreferences.leftVerticalSeekbar.collectAsState() val configuration = LocalConfiguration.current val verticalSeekbarLandscape = configuration.orientation == Configuration.ORIENTATION_LANDSCAPE && landscapeVerticalSeekbar @@ -689,13 +689,13 @@ class ReaderActivity : BaseActivity() { doublePages = state.doublePages, onClickChapterList = viewModel::openChapterListDialog, onClickPageLayout = { - if (readerPreferences.pageLayout().get() == PagerConfig.PageLayout.AUTOMATIC) { + if (readerPreferences.pageLayout.get() == PagerConfig.PageLayout.AUTOMATIC) { (viewModel.state.value.viewer as? PagerViewer)?.config?.let { config -> config.doublePages = !config.doublePages reloadChapters(config.doublePages, true) } } else { - readerPreferences.pageLayout().set(1 - readerPreferences.pageLayout().get()) + readerPreferences.pageLayout.set(1 - readerPreferences.pageLayout.get()) } }, onClickShiftPage = ::shiftDoublePages, @@ -704,7 +704,7 @@ class ReaderActivity : BaseActivity() { } private fun enableExhAutoScroll() { - readerPreferences.autoscrollInterval().changes() + readerPreferences.autoscrollInterval.changes() .combine(viewModel.state.map { it.autoScroll }.distinctUntilChanged()) { interval, enabled -> interval.toDouble() to enabled }.mapLatest { (intervalFloat, enabled) -> @@ -717,7 +717,7 @@ class ReaderActivity : BaseActivity() { when (v) { is PagerViewer -> v.moveToNext() is WebtoonViewer -> { - if (readerPreferences.smoothAutoScroll().get()) { + if (readerPreferences.smoothAutoScroll.get()) { v.linearScroll(interval) } else { v.scrollDown() @@ -857,7 +857,7 @@ class ReaderActivity : BaseActivity() { viewModel.showMenus(visible) if (visible) { windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) - } else if (readerPreferences.fullscreen().get()) { + } else if (readerPreferences.fullscreen.get()) { windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) } } @@ -884,12 +884,12 @@ class ReaderActivity : BaseActivity() { binding.viewerContainer.removeAllViews() } viewModel.onViewerLoaded(newViewer) - updateViewerInset(readerPreferences.fullscreen().get(), readerPreferences.drawUnderCutout().get()) + updateViewerInset(readerPreferences.fullscreen.get(), readerPreferences.drawUnderCutout.get()) binding.viewerContainer.addView(newViewer.getView()) // SY --> if (newViewer is PagerViewer) { - if (readerPreferences.pageLayout().get() == PagerConfig.PageLayout.AUTOMATIC) { + if (readerPreferences.pageLayout.get() == PagerConfig.PageLayout.AUTOMATIC) { setDoublePageMode(newViewer) } viewModel.state.value.lastShiftDoubleState?.let { newViewer.config.shiftDoublePage = it } @@ -900,14 +900,14 @@ class ReaderActivity : BaseActivity() { manga.mangaType(sourceName = sourceManager.get(manga.source)?.name), ) if ( - readerPreferences.useAutoWebtoon().get() && + readerPreferences.useAutoWebtoon.get() && (manga?.readingMode?.toInt() ?: ReadingMode.DEFAULT.flagValue) == ReadingMode.DEFAULT.flagValue && defaultReaderType != null && defaultReaderType == ReadingMode.WEBTOON.flagValue ) { readingModeToast?.cancel() readingModeToast = toast(SYMR.strings.eh_auto_webtoon_snack) - } else if (readerPreferences.showReadingMode().get()) { + } else if (readerPreferences.showReadingMode.get()) { // SY <-- showReadingModeToast(viewModel.getMangaReadingMode()) } @@ -1266,7 +1266,7 @@ class ReaderActivity : BaseActivity() { * Initializes the reader subscriptions. */ init { - readerPreferences.readerTheme().changes() + readerPreferences.readerTheme.changes() .onEach { theme -> binding.readerContainer.setBackgroundColor( when (theme) { @@ -1279,21 +1279,21 @@ class ReaderActivity : BaseActivity() { } .launchIn(lifecycleScope) - preferences.displayProfile().changes() + preferences.displayProfile.changes() .onEach { setDisplayProfile(it) } .launchIn(lifecycleScope) - readerPreferences.keepScreenOn().changes() + readerPreferences.keepScreenOn.changes() .onEach(::setKeepScreenOn) .launchIn(lifecycleScope) - readerPreferences.customBrightness().changes() + readerPreferences.customBrightness.changes() .onEach(::setCustomBrightness) .launchIn(lifecycleScope) combine( - readerPreferences.grayscale().changes(), - readerPreferences.invertedColors().changes(), + readerPreferences.grayscale.changes(), + readerPreferences.invertedColors.changes(), ) { grayscale, invertedColors -> grayscale to invertedColors } .onEach { (grayscale, invertedColors) -> setLayerPaint(grayscale, invertedColors) @@ -1301,8 +1301,8 @@ class ReaderActivity : BaseActivity() { .launchIn(lifecycleScope) combine( - readerPreferences.fullscreen().changes(), - readerPreferences.drawUnderCutout().changes(), + readerPreferences.fullscreen.changes(), + readerPreferences.drawUnderCutout.changes(), ) { fullscreen, drawUnderCutout -> fullscreen to drawUnderCutout } .onEach { (fullscreen, drawUnderCutout) -> updateViewerInset(fullscreen, drawUnderCutout) @@ -1310,7 +1310,7 @@ class ReaderActivity : BaseActivity() { .launchIn(lifecycleScope) // SY --> - readerPreferences.pageLayout().changes() + readerPreferences.pageLayout.changes() .drop(1) .onEach { viewModel.setDoublePages( @@ -1322,13 +1322,13 @@ class ReaderActivity : BaseActivity() { } .launchIn(lifecycleScope) - readerPreferences.dualPageSplitPaged().changes() + readerPreferences.dualPageSplitPaged.changes() .drop(1) .onEach { if (viewModel.state.value.viewer !is PagerViewer) return@onEach reloadChapters( !it && - when (readerPreferences.pageLayout().get()) { + when (readerPreferences.pageLayout.get()) { PagerConfig.PageLayout.DOUBLE_PAGES -> true PagerConfig.PageLayout.AUTOMATIC -> resources.configuration.orientation == @@ -1389,7 +1389,7 @@ class ReaderActivity : BaseActivity() { */ private fun setCustomBrightness(enabled: Boolean) { if (enabled) { - readerPreferences.customBrightnessValue().changes() + readerPreferences.customBrightnessValue.changes() .sample(100) .onEach(::setCustomBrightnessValue) .launchIn(lifecycleScope) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt index 5970c7702..3f8838c87 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt @@ -226,11 +226,11 @@ class ReaderViewModel @JvmOverloads constructor( ?: error("Requested chapter of id $chapterId not found in chapter list") val chaptersForReader = when { - (readerPreferences.skipRead().get() || readerPreferences.skipFiltered().get()) -> { + (readerPreferences.skipRead.get() || readerPreferences.skipFiltered.get()) -> { val filteredChapters = chapters.filterNot { when { - readerPreferences.skipRead().get() && it.read -> true - readerPreferences.skipFiltered().get() -> { + readerPreferences.skipRead.get() && it.read -> true + readerPreferences.skipFiltered.get() -> { (manga.unreadFilterRaw == Manga.CHAPTER_SHOW_READ && !it.read) || (manga.unreadFilterRaw == Manga.CHAPTER_SHOW_UNREAD && it.read) || // SY --> @@ -262,14 +262,14 @@ class ReaderViewModel @JvmOverloads constructor( val result = chaptersForReader .sortedWith(getChapterSort(manga, sortDescending = false)) .run { - if (readerPreferences.skipDupe().get()) { + if (readerPreferences.skipDupe.get()) { removeDuplicates(selectedChapter) } else { this } } .run { - if (basePreferences.downloadedOnly().get()) { + if (basePreferences.downloadedOnly.get()) { filterDownloaded(manga, mangaMap) } else { this @@ -282,7 +282,7 @@ class ReaderViewModel @JvmOverloads constructor( } private val incognitoMode: Boolean by lazy { getIncognitoState.await(manga?.source) } - private val downloadAheadAmount = downloadPreferences.autoDownloadWhileReading().get() + private val downloadAheadAmount = downloadPreferences.autoDownloadWhileReading.get() init { // To save state @@ -311,10 +311,10 @@ class ReaderViewModel @JvmOverloads constructor( val parsed = text.toDoubleOrNull() if (parsed == null || parsed <= 0 || parsed > 9999) { - readerPreferences.autoscrollInterval().set(-1f) + readerPreferences.autoscrollInterval.set(-1f) mutableState.update { it.copy(isAutoScrollEnabled = false) } } else { - readerPreferences.autoscrollInterval().set(parsed.toFloat()) + readerPreferences.autoscrollInterval.set(parsed.toFloat()) mutableState.update { it.copy(isAutoScrollEnabled = true) } } } @@ -380,8 +380,8 @@ class ReaderViewModel @JvmOverloads constructor( } else { emptyMap() } - val relativeTime = uiPreferences.relativeTime().get() - val autoScrollFreq = readerPreferences.autoscrollInterval().get() + val relativeTime = uiPreferences.relativeTime.get() + val autoScrollFreq = readerPreferences.autoscrollInterval.get() // SY <-- mutableState.update { it.copy( @@ -443,7 +443,7 @@ class ReaderViewModel @JvmOverloads constructor( chapter = it.chapter.toDomainChapter()!!, manga = manga!!, isCurrent = it.chapter.id == currentChapter?.chapter?.id, - dateFormat = UiPreferences.dateFormat(uiPreferences.dateFormat().get()), + dateFormat = UiPreferences.dateFormat(uiPreferences.dateFormat.get()), ) } } @@ -645,7 +645,7 @@ class ReaderViewModel @JvmOverloads constructor( if (!isNextChapterDownloaded) return@launchIO val chaptersToDownload = getNextChapters.await(manga.id, nextChapter.id!!).run { - if (readerPreferences.skipDupe().get()) { + if (readerPreferences.skipDupe.get()) { removeDuplicates(nextChapter.toDomainChapter()!!) } else { this @@ -675,7 +675,7 @@ class ReaderViewModel @JvmOverloads constructor( * @param currentChapter current chapter, which is going to be marked as read. */ private suspend fun deleteChapterIfNeeded(currentChapter: ReaderChapter) { - val removeAfterReadSlots = downloadPreferences.removeAfterReadSlots().get() + val removeAfterReadSlots = downloadPreferences.removeAfterReadSlots.get() if (removeAfterReadSlots == -1) return // Determine which chapter should be deleted and enqueue @@ -765,7 +765,7 @@ class ReaderViewModel @JvmOverloads constructor( updateTrackChapterRead(readerChapter) deleteChapterIfNeeded(readerChapter) - val markDuplicateAsRead = libraryPreferences.markDuplicateReadChapterAsRead().get() + val markDuplicateAsRead = libraryPreferences.markDuplicateReadChapterAsRead.get() .contains(LibraryPreferences.MARK_DUPLICATE_CHAPTER_READ_EXISTING) if (!markDuplicateAsRead) return @@ -890,12 +890,12 @@ class ReaderViewModel @JvmOverloads constructor( * Returns the viewer position used by this manga or the default one. */ fun getMangaReadingMode(resolveDefault: Boolean = true): Int { - val default = readerPreferences.defaultReadingMode().get() + val default = readerPreferences.defaultReadingMode.get() val manga = manga ?: return default val readingMode = ReadingMode.fromPreference(manga.readingMode.toInt()) // SY --> return when { - resolveDefault && readingMode == ReadingMode.DEFAULT && readerPreferences.useAutoWebtoon().get() -> { + resolveDefault && readingMode == ReadingMode.DEFAULT && readerPreferences.useAutoWebtoon.get() -> { manga.defaultReaderType(manga.mangaType(sourceName = sourceManager.get(manga.source)?.name)) ?: default } @@ -933,7 +933,7 @@ class ReaderViewModel @JvmOverloads constructor( * Returns the orientation type used by this manga or the default one. */ fun getMangaOrientation(resolveDefault: Boolean = true): Int { - val default = readerPreferences.defaultOrientationType().get() + val default = readerPreferences.defaultOrientationType.get() val orientation = ReaderOrientation.fromPreference(manga?.readerOrientation?.toInt()) return when { resolveDefault && orientation == ReaderOrientation.DEFAULT -> default @@ -972,11 +972,11 @@ class ReaderViewModel @JvmOverloads constructor( val isPagerType = ReadingMode.isPagerType(readingMode) val isWebtoon = ReadingMode.WEBTOON.flagValue == readingMode return if (isPagerType) { - readerPreferences.cropBorders().toggle() + readerPreferences.cropBorders.toggle() } else if (isWebtoon) { - readerPreferences.cropBordersWebtoon().toggle() + readerPreferences.cropBordersWebtoon.toggle() } else { - readerPreferences.cropBordersContinuousVertical().toggle() + readerPreferences.cropBordersContinuousVertical.toggle() } } // SY <-- @@ -1092,8 +1092,10 @@ class ReaderViewModel @JvmOverloads constructor( val filename = generateFilename(manga, page) // Pictures directory. - val relativePath = if (readerPreferences.folderPerManga().get()) { - DiskUtil.buildValidFilename(manga.title) + val relativePath = if (readerPreferences.folderPerManga.get()) { + DiskUtil.buildValidFilename( + manga.title, + ) } else { "" } @@ -1307,7 +1309,7 @@ class ReaderViewModel @JvmOverloads constructor( */ private fun updateTrackChapterRead(readerChapter: ReaderChapter) { if (incognitoMode) return - if (!trackPreferences.autoUpdateTrack().get()) return + if (!trackPreferences.autoUpdateTrack.get()) return val manga = manga ?: return val context = Injekt.get() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ArchivePageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ArchivePageLoader.kt index 5e4f7e2fa..79a000e9d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ArchivePageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ArchivePageLoader.kt @@ -36,7 +36,7 @@ internal class ArchivePageLoader(private val reader: ArchiveReader) : PageLoader error("Incorrect archive password") } } - if (readerPreferences.archiveReaderMode().get() == ReaderPreferences.ArchiveReaderMode.CACHE_TO_DISK) { + if (readerPreferences.archiveReaderMode.get() == ReaderPreferences.ArchiveReaderMode.CACHE_TO_DISK) { tmpDir.mkdirs() reader.useEntries { entries -> entries @@ -61,7 +61,7 @@ internal class ArchivePageLoader(private val reader: ArchiveReader) : PageLoader override suspend fun getPages(): List = reader.useEntries { entries -> // SY --> - if (readerPreferences.archiveReaderMode().get() == ReaderPreferences.ArchiveReaderMode.CACHE_TO_DISK) { + if (readerPreferences.archiveReaderMode.get() == ReaderPreferences.ArchiveReaderMode.CACHE_TO_DISK) { return DirectoryPageLoader(UniFile.fromFile(tmpDir)!!).getPages() } // SY <-- @@ -71,7 +71,7 @@ internal class ArchivePageLoader(private val reader: ArchiveReader) : PageLoader .mapIndexed { i, entry -> // SY --> val imageBytesDeferred: Deferred? = - when (readerPreferences.archiveReaderMode().get()) { + when (readerPreferences.archiveReaderMode.get()) { ReaderPreferences.ArchiveReaderMode.LOAD_INTO_MEMORY -> { CoroutineScope(Dispatchers.IO).async { mutex.withLock { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt index 18333357e..678a1a01c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt @@ -64,7 +64,7 @@ class ChapterLoader( // otherwise use the requested page. if (!chapter.chapter.read /* --> EH */ || readerPrefs - .preserveReadingPosition() + .preserveReadingPosition .get() || page != null // <-- EH ) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt index 759037936..370cdfba2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt @@ -52,7 +52,7 @@ internal class HttpPageLoader( */ private val queue = PriorityBlockingQueue() - private val preloadSize = /* SY --> */ readerPreferences.preloadSize().get() // SY <-- + private val preloadSize = /* SY --> */ readerPreferences.preloadSize.get() // SY <-- // SY --> private val dataSaver = DataSaver(source, sourcePreferences) @@ -60,7 +60,7 @@ internal class HttpPageLoader( init { // EXH --> - repeat(readerPreferences.readerThreads().get()) { + repeat(readerPreferences.readerThreads.get()) { // EXH <-- scope.launchIO { flow { @@ -101,7 +101,7 @@ internal class HttpPageLoader( // Don't trust sources and use our own indexing ReaderPage(index, page.url, page.imageUrl) } - if (readerPreferences.aggressivePageLoading().get()) { + if (readerPreferences.aggressivePageLoading.get()) { rp.forEach { if (it.status == Page.State.Queue) { queue.offer(PriorityPage(it, 0)) @@ -158,7 +158,7 @@ internal class HttpPageLoader( page.imageUrl = null } - if (readerPreferences.readerInstantRetry().get()) { + if (readerPreferences.readerInstantRetry.get()) { boostPage(page) } else { // EXH <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt index eff66b356..249dd3893 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt @@ -4,186 +4,220 @@ import android.os.Build import androidx.compose.ui.graphics.BlendMode import dev.icerock.moko.resources.StringResource import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerConfig +import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore import tachiyomi.core.common.preference.getEnum import tachiyomi.i18n.MR import tachiyomi.i18n.sy.SYMR class ReaderPreferences( - private val preferenceStore: PreferenceStore, + preferenceStore: PreferenceStore, ) { // region General // SY --> - fun pageTransitionsPager() = preferenceStore.getBoolean("pref_enable_transitions_pager_key", true) + val pageTransitionsPager: Preference = preferenceStore.getBoolean("pref_enable_transitions_pager_key", true) - fun pageTransitionsWebtoon() = preferenceStore.getBoolean("pref_enable_transitions_webtoon_key", true) + val pageTransitionsWebtoon: Preference = preferenceStore.getBoolean("pref_enable_transitions_webtoon_key", true) // SY <-- - fun flashOnPageChange() = preferenceStore.getBoolean("pref_reader_flash", false) + val flashOnPageChange: Preference = preferenceStore.getBoolean("pref_reader_flash", false) - fun flashDurationMillis() = preferenceStore.getInt("pref_reader_flash_duration", MILLI_CONVERSION) + val flashDurationMillis: Preference = preferenceStore.getInt("pref_reader_flash_duration", MILLI_CONVERSION) - fun flashPageInterval() = preferenceStore.getInt("pref_reader_flash_interval", 1) + val flashPageInterval: Preference = preferenceStore.getInt("pref_reader_flash_interval", 1) - fun flashColor() = preferenceStore.getEnum("pref_reader_flash_mode", FlashColor.BLACK) + val flashColor: Preference = preferenceStore.getEnum("pref_reader_flash_mode", FlashColor.BLACK) - fun doubleTapAnimSpeed() = preferenceStore.getInt("pref_double_tap_anim_speed", 500) + val doubleTapAnimSpeed: Preference = preferenceStore.getInt("pref_double_tap_anim_speed", 500) - fun showPageNumber() = preferenceStore.getBoolean("pref_show_page_number_key", true) + val showPageNumber: Preference = preferenceStore.getBoolean("pref_show_page_number_key", true) - fun showReadingMode() = preferenceStore.getBoolean("pref_show_reading_mode", true) + val showReadingMode: Preference = preferenceStore.getBoolean("pref_show_reading_mode", true) - fun fullscreen() = preferenceStore.getBoolean("fullscreen", true) + val fullscreen: Preference = preferenceStore.getBoolean("fullscreen", true) - fun drawUnderCutout() = preferenceStore.getBoolean("cutout_short", true) + val drawUnderCutout: Preference = preferenceStore.getBoolean("cutout_short", true) - fun keepScreenOn() = preferenceStore.getBoolean("pref_keep_screen_on_key", false) + val keepScreenOn: Preference = preferenceStore.getBoolean("pref_keep_screen_on_key", false) - fun defaultReadingMode() = preferenceStore.getInt( + val defaultReadingMode: Preference = preferenceStore.getInt( "pref_default_reading_mode_key", ReadingMode.RIGHT_TO_LEFT.flagValue, ) - fun defaultOrientationType() = preferenceStore.getInt( + val defaultOrientationType: Preference = preferenceStore.getInt( "pref_default_orientation_type_key", ReaderOrientation.FREE.flagValue, ) - fun webtoonDoubleTapZoomEnabled() = preferenceStore.getBoolean("pref_enable_double_tap_zoom_webtoon", true) + val webtoonDoubleTapZoomEnabled: Preference = preferenceStore.getBoolean( + "pref_enable_double_tap_zoom_webtoon", + true, + ) - fun imageScaleType() = preferenceStore.getInt("pref_image_scale_type_key", 1) + val imageScaleType: Preference = preferenceStore.getInt("pref_image_scale_type_key", 1) - fun zoomStart() = preferenceStore.getInt("pref_zoom_start_key", 1) + val zoomStart: Preference = preferenceStore.getInt("pref_zoom_start_key", 1) - fun readerTheme() = preferenceStore.getInt("pref_reader_theme_key", 1) + val readerTheme: Preference = preferenceStore.getInt("pref_reader_theme_key", 1) - fun alwaysShowChapterTransition() = preferenceStore.getBoolean("always_show_chapter_transition", true) + val alwaysShowChapterTransition: Preference = preferenceStore.getBoolean( + "always_show_chapter_transition", + true, + ) - fun cropBorders() = preferenceStore.getBoolean("crop_borders", false) + val cropBorders: Preference = preferenceStore.getBoolean("crop_borders", false) - fun navigateToPan() = preferenceStore.getBoolean("navigate_pan", true) + val navigateToPan: Preference = preferenceStore.getBoolean("navigate_pan", true) - fun landscapeZoom() = preferenceStore.getBoolean("landscape_zoom", true) + val landscapeZoom: Preference = preferenceStore.getBoolean("landscape_zoom", true) - fun cropBordersWebtoon() = preferenceStore.getBoolean("crop_borders_webtoon", false) + val cropBordersWebtoon: Preference = preferenceStore.getBoolean("crop_borders_webtoon", false) - fun webtoonSidePadding() = preferenceStore.getInt("webtoon_side_padding", WEBTOON_PADDING_MIN) + val webtoonSidePadding: Preference = preferenceStore.getInt("webtoon_side_padding", WEBTOON_PADDING_MIN) - fun readerHideThreshold() = preferenceStore.getEnum("reader_hide_threshold", ReaderHideThreshold.LOW) + val readerHideThreshold: Preference = preferenceStore.getEnum( + "reader_hide_threshold", + ReaderHideThreshold.LOW, + ) - fun folderPerManga() = preferenceStore.getBoolean("create_folder_per_manga", false) + val folderPerManga: Preference = preferenceStore.getBoolean("create_folder_per_manga", false) - fun skipRead() = preferenceStore.getBoolean("skip_read", false) + val skipRead: Preference = preferenceStore.getBoolean("skip_read", false) - fun skipFiltered() = preferenceStore.getBoolean("skip_filtered", true) + val skipFiltered: Preference = preferenceStore.getBoolean("skip_filtered", true) - fun skipDupe() = preferenceStore.getBoolean("skip_dupe", false) + val skipDupe: Preference = preferenceStore.getBoolean("skip_dupe", false) - fun webtoonDisableZoomOut() = preferenceStore.getBoolean("webtoon_disable_zoom_out", false) + val webtoonDisableZoomOut: Preference = preferenceStore.getBoolean("webtoon_disable_zoom_out", false) // endregion - // region Split two page spread + // region Split two-page spread - fun dualPageSplitPaged() = preferenceStore.getBoolean("pref_dual_page_split", false) + val dualPageSplitPaged: Preference = preferenceStore.getBoolean("pref_dual_page_split", false) - fun dualPageInvertPaged() = preferenceStore.getBoolean("pref_dual_page_invert", false) + val dualPageInvertPaged: Preference = preferenceStore.getBoolean("pref_dual_page_invert", false) - fun dualPageSplitWebtoon() = preferenceStore.getBoolean("pref_dual_page_split_webtoon", false) + val dualPageSplitWebtoon: Preference = preferenceStore.getBoolean("pref_dual_page_split_webtoon", false) - fun dualPageInvertWebtoon() = preferenceStore.getBoolean("pref_dual_page_invert_webtoon", false) + val dualPageInvertWebtoon: Preference = preferenceStore.getBoolean("pref_dual_page_invert_webtoon", false) - fun dualPageRotateToFit() = preferenceStore.getBoolean("pref_dual_page_rotate", false) + val dualPageRotateToFit: Preference = preferenceStore.getBoolean("pref_dual_page_rotate", false) - fun dualPageRotateToFitInvert() = preferenceStore.getBoolean("pref_dual_page_rotate_invert", false) + val dualPageRotateToFitInvert: Preference = preferenceStore.getBoolean( + "pref_dual_page_rotate_invert", + false, + ) - fun dualPageRotateToFitWebtoon() = preferenceStore.getBoolean("pref_dual_page_rotate_webtoon", false) + val dualPageRotateToFitWebtoon: Preference = preferenceStore.getBoolean( + "pref_dual_page_rotate_webtoon", + false, + ) - fun dualPageRotateToFitInvertWebtoon() = preferenceStore.getBoolean("pref_dual_page_rotate_invert_webtoon", false) + val dualPageRotateToFitInvertWebtoon: Preference = preferenceStore.getBoolean( + "pref_dual_page_rotate_invert_webtoon", + false, + ) // endregion // region Color filter - fun customBrightness() = preferenceStore.getBoolean("pref_custom_brightness_key", false) + val customBrightness: Preference = preferenceStore.getBoolean("pref_custom_brightness_key", false) - fun customBrightnessValue() = preferenceStore.getInt("custom_brightness_value", 0) + val customBrightnessValue: Preference = preferenceStore.getInt("custom_brightness_value", 0) - fun colorFilter() = preferenceStore.getBoolean("pref_color_filter_key", false) + val colorFilter: Preference = preferenceStore.getBoolean("pref_color_filter_key", false) - fun colorFilterValue() = preferenceStore.getInt("color_filter_value", 0) + val colorFilterValue: Preference = preferenceStore.getInt("color_filter_value", 0) - fun colorFilterMode() = preferenceStore.getInt("color_filter_mode", 0) + val colorFilterMode: Preference = preferenceStore.getInt("color_filter_mode", 0) - fun grayscale() = preferenceStore.getBoolean("pref_grayscale", false) + val grayscale: Preference = preferenceStore.getBoolean("pref_grayscale", false) - fun invertedColors() = preferenceStore.getBoolean("pref_inverted_colors", false) + val invertedColors: Preference = preferenceStore.getBoolean("pref_inverted_colors", false) // endregion // region Controls - fun readWithLongTap() = preferenceStore.getBoolean("reader_long_tap", true) + val readWithLongTap: Preference = preferenceStore.getBoolean("reader_long_tap", true) - fun readWithVolumeKeys() = preferenceStore.getBoolean("reader_volume_keys", false) + val readWithVolumeKeys: Preference = preferenceStore.getBoolean("reader_volume_keys", false) - fun readWithVolumeKeysInverted() = preferenceStore.getBoolean("reader_volume_keys_inverted", false) + val readWithVolumeKeysInverted: Preference = preferenceStore.getBoolean( + "reader_volume_keys_inverted", + false, + ) - fun navigationModePager() = preferenceStore.getInt("reader_navigation_mode_pager", 0) + val navigationModePager: Preference = preferenceStore.getInt("reader_navigation_mode_pager", 0) - fun navigationModeWebtoon() = preferenceStore.getInt("reader_navigation_mode_webtoon", 0) + val navigationModeWebtoon: Preference = preferenceStore.getInt("reader_navigation_mode_webtoon", 0) - fun pagerNavInverted() = preferenceStore.getEnum("reader_tapping_inverted", TappingInvertMode.NONE) + val pagerNavInverted: Preference = preferenceStore.getEnum( + "reader_tapping_inverted", + TappingInvertMode.NONE, + ) - fun webtoonNavInverted() = preferenceStore.getEnum("reader_tapping_inverted_webtoon", TappingInvertMode.NONE) + val webtoonNavInverted: Preference = preferenceStore.getEnum( + "reader_tapping_inverted_webtoon", + TappingInvertMode.NONE, + ) - fun showNavigationOverlayNewUser() = preferenceStore.getBoolean("reader_navigation_overlay_new_user", true) + val showNavigationOverlayNewUser: Preference = preferenceStore.getBoolean( + "reader_navigation_overlay_new_user", + true, + ) - fun showNavigationOverlayOnStart() = preferenceStore.getBoolean("reader_navigation_overlay_on_start", false) + val showNavigationOverlayOnStart: Preference = preferenceStore.getBoolean( + "reader_navigation_overlay_on_start", + false, + ) // endregion // SY --> - fun readerThreads() = preferenceStore.getInt("eh_reader_threads", 2) + val readerThreads: Preference = preferenceStore.getInt("eh_reader_threads", 2) - fun readerInstantRetry() = preferenceStore.getBoolean("eh_reader_instant_retry", true) + val readerInstantRetry: Preference = preferenceStore.getBoolean("eh_reader_instant_retry", true) - fun aggressivePageLoading() = preferenceStore.getBoolean("eh_aggressive_page_loading", false) + val aggressivePageLoading: Preference = preferenceStore.getBoolean("eh_aggressive_page_loading", false) - fun cacheSize() = preferenceStore.getString("eh_cache_size", "75") + val cacheSize: Preference = preferenceStore.getString("eh_cache_size", "75") - fun autoscrollInterval() = preferenceStore.getFloat("eh_util_autoscroll_interval", 3f) + val autoscrollInterval: Preference = preferenceStore.getFloat("eh_util_autoscroll_interval", 3f) - fun smoothAutoScroll() = preferenceStore.getBoolean("smooth_auto_scroll", true) + val smoothAutoScroll: Preference = preferenceStore.getBoolean("smooth_auto_scroll", true) - fun preserveReadingPosition() = preferenceStore.getBoolean("eh_preserve_reading_position", false) + val preserveReadingPosition: Preference = preferenceStore.getBoolean("eh_preserve_reading_position", false) - fun preloadSize() = preferenceStore.getInt("eh_preload_size", 10) + val preloadSize: Preference = preferenceStore.getInt("eh_preload_size", 10) - fun useAutoWebtoon() = preferenceStore.getBoolean("eh_use_auto_webtoon", true) + val useAutoWebtoon: Preference = preferenceStore.getBoolean("eh_use_auto_webtoon", true) - fun continuousVerticalTappingByPage() = preferenceStore.getBoolean("continuous_vertical_tapping_by_page", false) + val continuousVerticalTappingByPage: Preference = preferenceStore.getBoolean("continuous_vertical_tapping_by_page", false) - fun cropBordersContinuousVertical() = preferenceStore.getBoolean("crop_borders_continues_vertical", false) + val cropBordersContinuousVertical: Preference = preferenceStore.getBoolean("crop_borders_continues_vertical", false) - fun forceHorizontalSeekbar() = preferenceStore.getBoolean("pref_force_horz_seekbar", false) + val forceHorizontalSeekbar: Preference = preferenceStore.getBoolean("pref_force_horz_seekbar", false) - fun landscapeVerticalSeekbar() = preferenceStore.getBoolean("pref_show_vert_seekbar_landscape", false) + val landscapeVerticalSeekbar: Preference = preferenceStore.getBoolean("pref_show_vert_seekbar_landscape", false) - fun leftVerticalSeekbar() = preferenceStore.getBoolean("pref_left_handed_vertical_seekbar", false) + val leftVerticalSeekbar: Preference = preferenceStore.getBoolean("pref_left_handed_vertical_seekbar", false) - fun readerBottomButtons() = preferenceStore.getStringSet("reader_bottom_buttons", ReaderBottomButton.BUTTONS_DEFAULTS) + val readerBottomButtons: Preference> = preferenceStore.getStringSet("reader_bottom_buttons", ReaderBottomButton.BUTTONS_DEFAULTS) - fun pageLayout() = preferenceStore.getInt("page_layout", PagerConfig.PageLayout.AUTOMATIC) + val pageLayout: Preference = preferenceStore.getInt("page_layout", PagerConfig.PageLayout.AUTOMATIC) - fun invertDoublePages() = preferenceStore.getBoolean("invert_double_pages", false) + val invertDoublePages: Preference = preferenceStore.getBoolean("invert_double_pages", false) - fun centerMarginType() = preferenceStore.getInt("center_margin_type", PagerConfig.CenterMarginType.NONE) + val centerMarginType: Preference = preferenceStore.getInt("center_margin_type", PagerConfig.CenterMarginType.NONE) - fun archiveReaderMode() = preferenceStore.getInt("archive_reader_mode", ArchiveReaderMode.LOAD_FROM_FILE) + val archiveReaderMode: Preference = preferenceStore.getInt("archive_reader_mode", ArchiveReaderMode.LOAD_FROM_FILE) // SY <-- enum class FlashColor { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt index fa68b7f8f..681c71f96 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderPageImageView.kt @@ -61,7 +61,7 @@ open class ReaderPageImageView @JvmOverloads constructor( ) : FrameLayout(context, attrs, defStyleAttrs, defStyleRes) { private val alwaysDecodeLongStripWithSSIV by lazy { - Injekt.get().alwaysDecodeLongStripWithSSIV().get() + Injekt.get().alwaysDecodeLongStripWithSSIV.get() } private var pageView: View? = null diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt index 13efc429f..a1f6cabaa 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerConfig.kt @@ -45,27 +45,27 @@ abstract class ViewerConfig(readerPreferences: ReaderPreferences, private val sc protected set init { - readerPreferences.readWithLongTap() + readerPreferences.readWithLongTap .register({ longTapEnabled = it }) - readerPreferences.doubleTapAnimSpeed() + readerPreferences.doubleTapAnimSpeed .register({ doubleTapAnimDuration = it }) - readerPreferences.readWithVolumeKeys() + readerPreferences.readWithVolumeKeys .register({ volumeKeysEnabled = it }) - readerPreferences.readWithVolumeKeysInverted() + readerPreferences.readWithVolumeKeysInverted .register({ volumeKeysInverted = it }) - readerPreferences.alwaysShowChapterTransition() + readerPreferences.alwaysShowChapterTransition .register({ alwaysShowChapterTransition = it }) - forceNavigationOverlay = readerPreferences.showNavigationOverlayNewUser().get() + forceNavigationOverlay = readerPreferences.showNavigationOverlayNewUser.get() if (forceNavigationOverlay) { - readerPreferences.showNavigationOverlayNewUser().set(false) + readerPreferences.showNavigationOverlayNewUser.set(false) } - readerPreferences.showNavigationOverlayOnStart() + readerPreferences.showNavigationOverlayOnStart .register({ navigationOverlayOnStart = it }) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt index e669e4471..79491a07a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt @@ -27,7 +27,7 @@ class PagerConfig( readerPreferences: ReaderPreferences = Injekt.get(), ) : ViewerConfig(readerPreferences, scope) { - var theme = readerPreferences.readerTheme().get() + var theme = readerPreferences.readerTheme.get() private set var automaticBackground = false @@ -58,7 +58,7 @@ class PagerConfig( var shiftDoublePage = false var doublePages = - readerPreferences.pageLayout().get() == PageLayout.DOUBLE_PAGES && !readerPreferences.dualPageSplitPaged().get() + readerPreferences.pageLayout.get() == PageLayout.DOUBLE_PAGES && !readerPreferences.dualPageSplitPaged.get() set(value) { field = value if (!value) { @@ -68,7 +68,7 @@ class PagerConfig( var invertDoublePages = false - var autoDoublePages = readerPreferences.pageLayout().get() == PageLayout.AUTOMATIC + var autoDoublePages = readerPreferences.pageLayout.get() == PageLayout.AUTOMATIC @ColorInt var pageCanvasColor = Color.WHITE @@ -78,7 +78,7 @@ class PagerConfig( // SY <-- init { - readerPreferences.readerTheme() + readerPreferences.readerTheme .register( { theme = it @@ -87,32 +87,32 @@ class PagerConfig( { imagePropertyChangedListener?.invoke() }, ) - readerPreferences.imageScaleType() + readerPreferences.imageScaleType .register({ imageScaleType = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.zoomStart() + readerPreferences.zoomStart .register({ zoomTypeFromPreference(it) }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.cropBorders() + readerPreferences.cropBorders .register({ imageCropBorders = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.navigateToPan() + readerPreferences.navigateToPan .register({ navigateToPan = it }) - readerPreferences.landscapeZoom() + readerPreferences.landscapeZoom .register({ landscapeZoom = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.navigationModePager() + readerPreferences.navigationModePager .register({ navigationMode = it }, { updateNavigation(navigationMode) }) - readerPreferences.pagerNavInverted() + readerPreferences.pagerNavInverted .register({ tappingInverted = it }, { navigator.invertMode = it }) - readerPreferences.pagerNavInverted().changes() + readerPreferences.pagerNavInverted.changes() .drop(1) .onEach { navigationModeChangedListener?.invoke() } .launchIn(scope) - readerPreferences.dualPageSplitPaged() + readerPreferences.dualPageSplitPaged .register( { dualPageSplit = it }, { @@ -121,25 +121,25 @@ class PagerConfig( }, ) - readerPreferences.dualPageInvertPaged() + readerPreferences.dualPageInvertPaged .register({ dualPageInvert = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.dualPageRotateToFit() + readerPreferences.dualPageRotateToFit .register( { dualPageRotateToFit = it }, { imagePropertyChangedListener?.invoke() }, ) - readerPreferences.dualPageRotateToFitInvert() + readerPreferences.dualPageRotateToFitInvert .register( { dualPageRotateToFitInvert = it }, { imagePropertyChangedListener?.invoke() }, ) // SY --> - readerPreferences.pageTransitionsPager() + readerPreferences.pageTransitionsPager .register({ usePageTransitions = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.readerTheme() + readerPreferences.readerTheme .register( { themeToColor(it) @@ -149,7 +149,7 @@ class PagerConfig( reloadChapterListener?.invoke(doublePages) }, ) - readerPreferences.pageLayout() + readerPreferences.pageLayout .register( { autoDoublePages = it == PageLayout.AUTOMATIC @@ -166,10 +166,10 @@ class PagerConfig( }, ) - readerPreferences.centerMarginType() + readerPreferences.centerMarginType .register({ centerMarginType = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.invertDoublePages() + readerPreferences.invertDoublePages .register({ invertDoublePages = it && dualPageSplit == false }, { imagePropertyChangedListener?.invoke() }) // SY <-- } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt index e56148e35..2e437be0a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt @@ -42,7 +42,7 @@ class WebtoonConfig( var doubleTapZoomChangedListener: ((Boolean) -> Unit)? = null - val theme = readerPreferences.readerTheme().get() + val theme = readerPreferences.readerTheme.get() // SY --> var usePageTransitions = false @@ -52,63 +52,63 @@ class WebtoonConfig( // SY <-- init { - readerPreferences.cropBordersWebtoon() + readerPreferences.cropBordersWebtoon .register({ imageCropBorders = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.webtoonSidePadding() + readerPreferences.webtoonSidePadding .register({ sidePadding = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.navigationModeWebtoon() + readerPreferences.navigationModeWebtoon .register({ navigationMode = it }, { updateNavigation(it) }) - readerPreferences.webtoonNavInverted() + readerPreferences.webtoonNavInverted .register({ tappingInverted = it }, { navigator.invertMode = it }) - readerPreferences.webtoonNavInverted().changes() + readerPreferences.webtoonNavInverted.changes() .drop(1) .onEach { navigationModeChangedListener?.invoke() } .launchIn(scope) - readerPreferences.dualPageSplitWebtoon() + readerPreferences.dualPageSplitWebtoon .register({ dualPageSplit = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.dualPageInvertWebtoon() + readerPreferences.dualPageInvertWebtoon .register({ dualPageInvert = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.dualPageRotateToFitWebtoon() + readerPreferences.dualPageRotateToFitWebtoon .register( { dualPageRotateToFit = it }, { imagePropertyChangedListener?.invoke() }, ) - readerPreferences.dualPageRotateToFitInvertWebtoon() + readerPreferences.dualPageRotateToFitInvertWebtoon .register( { dualPageRotateToFitInvert = it }, { imagePropertyChangedListener?.invoke() }, ) - readerPreferences.webtoonDisableZoomOut() + readerPreferences.webtoonDisableZoomOut .register( { zoomOutDisabled = it }, { zoomPropertyChangedListener?.invoke(it) }, ) - readerPreferences.webtoonDoubleTapZoomEnabled() + readerPreferences.webtoonDoubleTapZoomEnabled .register( { doubleTapZoom = it }, { doubleTapZoomChangedListener?.invoke(it) }, ) - readerPreferences.readerTheme().changes() + readerPreferences.readerTheme.changes() .drop(1) .distinctUntilChanged() .onEach { themeChangedListener?.invoke() } .launchIn(scope) // SY --> - readerPreferences.cropBordersContinuousVertical() + readerPreferences.cropBordersContinuousVertical .register({ continuousCropBorders = it }, { imagePropertyChangedListener?.invoke() }) - readerPreferences.pageTransitionsWebtoon() + readerPreferences.pageTransitionsWebtoon .register({ usePageTransitions = it }, { imagePropertyChangedListener?.invoke() }) // SY <-- } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt index 31b63b953..4edbb2fc1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt @@ -82,7 +82,7 @@ class WebtoonViewer( private val threshold: Int = Injekt.get() - .readerHideThreshold() + .readerHideThreshold .get() .threshold diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt index 8dd9c23f4..982678c1b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt @@ -106,9 +106,9 @@ class StatsScreenModel( } private fun getGlobalUpdateItemCount(libraryManga: List): Int { - val includedCategories = preferences.updateCategories().get().map { it.toLong() }.toSet() - val excludedCategories = preferences.updateCategoriesExclude().get().map { it.toLong() }.toSet() - val updateRestrictions = preferences.autoUpdateMangaRestrictions().get() + val includedCategories = preferences.updateCategories.get().map { it.toLong() }.toSet() + val excludedCategories = preferences.updateCategoriesExclude.get().map { it.toLong() }.toSet() + val updateRestrictions = preferences.autoUpdateMangaRestrictions.get() return libraryManga.filter { val included = includedCategories.isEmpty() || it.categories.intersect(includedCategories).isNotEmpty() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt index 970fc8fb4..bd3692949 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt @@ -78,10 +78,10 @@ class UpdatesScreenModel( private val _events: Channel = Channel(Int.MAX_VALUE) val events: Flow = _events.receiveAsFlow() - val lastUpdated by libraryPreferences.lastUpdatedTimestamp().asState(screenModelScope) + val lastUpdated by libraryPreferences.lastUpdatedTimestamp.asState(screenModelScope) // SY --> - val preserveReadingPosition by readerPreferences.preserveReadingPosition().asState(screenModelScope) + val preserveReadingPosition by readerPreferences.preserveReadingPosition.asState(screenModelScope) // SY <-- // First and last selected index in list @@ -427,16 +427,16 @@ class UpdatesScreenModel( } fun resetNewUpdatesCount() { - libraryPreferences.newUpdatesCount().set(0) + libraryPreferences.newUpdatesCount.set(0) } private fun getUpdatesItemPreferenceFlow(): Flow { return combine( - updatesPreferences.filterDownloaded().changes(), - updatesPreferences.filterUnread().changes(), - updatesPreferences.filterStarted().changes(), - updatesPreferences.filterBookmarked().changes(), - updatesPreferences.filterExcludedScanlators().changes(), + updatesPreferences.filterDownloaded.changes(), + updatesPreferences.filterUnread.changes(), + updatesPreferences.filterStarted.changes(), + updatesPreferences.filterBookmarked.changes(), + updatesPreferences.filterExcludedScanlators.changes(), ) { downloaded, unread, started, bookmarked, excludedScanlators -> ItemPreferences( filterDownloaded = downloaded, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt index 0f84a1666..b3dd1317c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt @@ -61,7 +61,7 @@ data object UpdatesTab : Tab { override fun isEnabled(): Boolean { val scope = rememberCoroutineScope() return remember { - Injekt.get().showNavUpdates().asState(scope) + Injekt.get().showNavUpdates.asState(scope) }.value } // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt index a6706087c..b5c70b07e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt @@ -46,7 +46,7 @@ class CrashLogUtil( App ID: ${BuildConfig.APPLICATION_ID} App version: ${BuildConfig.VERSION_NAME} (${BuildConfig.FLAVOR}, ${BuildConfig.COMMIT_SHA}, ${BuildConfig.VERSION_CODE}, ${BuildConfig.BUILD_TIME}) Preview build: $syDebugVersion - Installation ID: ${preferences.installationId().get()} + Installation ID: ${preferences.installationId.get()} Android version: ${Build.VERSION.RELEASE} (SDK ${Build.VERSION.SDK_INT}; build ${Build.DISPLAY}) Device brand: ${Build.BRAND} Device manufacturer: ${Build.MANUFACTURER} 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 60afe9826..b54303e47 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 @@ -107,8 +107,8 @@ fun Context.createFileInCacheDir(name: String): File { fun Context.createReaderThemeContext(): Context { val preferences = Injekt.get() val readerPreferences = Injekt.get() - val themeMode = preferences.themeMode().get() - val isDarkBackground = when (readerPreferences.readerTheme().get()) { + val themeMode = preferences.themeMode.get() + val isDarkBackground = when (readerPreferences.readerTheme.get()) { 1, 2 -> true // Black, Gray 3 -> when (themeMode) { // Automatic bg uses activity background by default ThemeMode.SYSTEM -> applicationContext.isNightMode() @@ -124,7 +124,7 @@ fun Context.createReaderThemeContext(): Context { val wrappedContext = ContextThemeWrapper(this, R.style.Theme_Tachiyomi) wrappedContext.applyOverrideConfiguration(overrideConf) - ThemingDelegate.getThemeResIds(preferences.appTheme().get(), preferences.themeDarkAmoled().get()) + ThemingDelegate.getThemeResIds(preferences.appTheme.get(), preferences.themeDarkAmoled.get()) .forEach { wrappedContext.theme.applyStyle(it, true) } return wrappedContext } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/DisplayExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/DisplayExtensions.kt index 141b65c0b..1a0fd0faa 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/DisplayExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/DisplayExtensions.kt @@ -25,7 +25,7 @@ fun Configuration.isTabletUi(): Boolean { // TODO: move the logic to `isTabletUi()` when main activity is rewritten in Compose fun Context.prepareTabletUiContext(): Context { val configuration = resources.configuration - val expected = when (Injekt.get().tabletUiMode().get()) { + val expected = when (Injekt.get().tabletUiMode.get()) { TabletUiMode.AUTOMATIC -> configuration.smallestScreenWidthDp >= when (configuration.orientation) { Configuration.ORIENTATION_PORTRAIT -> TABLET_UI_MIN_SCREEN_WIDTH_PORTRAIT_DP diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt index a571b68fa..f6b58026a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/TachiyomiTextInputEditText.kt @@ -49,7 +49,7 @@ class TachiyomiTextInputEditText @JvmOverloads constructor( * if [BasePreferences.incognitoMode] is true. Some IMEs may not respect this flag. */ fun EditText.setIncognito(viewScope: CoroutineScope) { - Injekt.get().incognitoMode().changes() + Injekt.get().incognitoMode.changes() .onEach { imeOptions = if (it) { imeOptions or EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING diff --git a/app/src/main/java/exh/GalleryAdder.kt b/app/src/main/java/exh/GalleryAdder.kt index f9927a43c..efba4ad4f 100755 --- a/app/src/main/java/exh/GalleryAdder.kt +++ b/app/src/main/java/exh/GalleryAdder.kt @@ -31,7 +31,7 @@ class GalleryAdder( ) { private val filters: Pair, Set> = Injekt.get().run { - enabledLanguages().get() to disabledSources().get().map { it.toLong() }.toSet() + enabledLanguages.get() to disabledSources.get().map { it.toLong() }.toSet() } private val Pair, Set>.enabledLangs diff --git a/app/src/main/java/exh/eh/EHentaiUpdateNotifier.kt b/app/src/main/java/exh/eh/EHentaiUpdateNotifier.kt index 009769b21..e103aabea 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateNotifier.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateNotifier.kt @@ -64,7 +64,7 @@ class EHentaiUpdateNotifier(private val context: Context) { ), ) - if (!securityPreferences.hideNotificationContent().get()) { + if (!securityPreferences.hideNotificationContent.get()) { val updatingText = manga.title.chop(40) progressNotificationBuilder.setStyle(NotificationCompat.BigTextStyle().bigText(updatingText)) } diff --git a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt index 42a796256..1ba892cec 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt @@ -202,10 +202,10 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara updateHelper.findAcceptedRootAndDiscardOthers(manga.source, chapters) if (new.isNotEmpty() && manga.id == acceptedRoot.manga.id) { - libraryPreferences.newUpdatesCount().getAndSet { it + new.size } + libraryPreferences.newUpdatesCount.getAndSet { it + new.size } updatedManga += acceptedRoot.manga to new.toTypedArray() } else if (exhNew.isNotEmpty() && updatedManga.none { it.first.id == acceptedRoot.manga.id }) { - libraryPreferences.newUpdatesCount().getAndSet { it + exhNew.size } + libraryPreferences.newUpdatesCount.getAndSet { it + exhNew.size } updatedManga += acceptedRoot.manga to exhNew.toTypedArray() } @@ -214,7 +214,7 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara updatedThisIteration++ } } finally { - exhPreferences.exhAutoUpdateStats().set( + exhPreferences.exhAutoUpdateStats.set( Json.encodeToString( EHentaiUpdaterStats( startTime, @@ -279,9 +279,9 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara fun scheduleBackground(context: Context, prefInterval: Int? = null, prefRestrictions: Set? = null) { val exhPreferences = Injekt.get() - val interval = prefInterval ?: exhPreferences.exhAutoUpdateFrequency().get() + val interval = prefInterval ?: exhPreferences.exhAutoUpdateFrequency.get() if (interval > 0) { - val restrictions = prefRestrictions ?: exhPreferences.exhAutoUpdateRequirements().get() + val restrictions = prefRestrictions ?: exhPreferences.exhAutoUpdateRequirements.get() val acRestriction = DEVICE_CHARGING in restrictions val constraints = Constraints.Builder() @@ -312,7 +312,7 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara } fun requiresWifiConnection(exhPreferences: ExhPreferences): Boolean { - val restrictions = exhPreferences.exhAutoUpdateRequirements().get() + val restrictions = exhPreferences.exhAutoUpdateRequirements.get() return DEVICE_ONLY_ON_WIFI in restrictions } } diff --git a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt index c106456e6..cf4ad45a2 100644 --- a/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt +++ b/app/src/main/java/exh/favorites/FavoritesSyncHelper.kt @@ -90,7 +90,7 @@ class FavoritesSyncHelper(val context: Context) { private suspend fun beginSync() { // Check if logged in - if (!exhPreferences.enableExhentai().get()) { + if (!exhPreferences.enableExhentai.get()) { status.value = FavoritesSyncStatus.SyncError.NotLoggedInSyncError return } @@ -138,7 +138,7 @@ class FavoritesSyncHelper(val context: Context) { status.value = FavoritesSyncStatus.Processing.CalculatingRemoteChanges val remoteChanges = storage.getChangedRemoteEntries(favorites.first) - val localChanges = if (exhPreferences.exhReadOnlySync().get()) { + val localChanges = if (exhPreferences.exhReadOnlySync.get()) { null // Do not build local changes if they are not going to be applied } else { status.value = FavoritesSyncStatus.Processing.CalculatingLocalChanges @@ -238,7 +238,7 @@ class FavoritesSyncHelper(val context: Context) { gallery.gid, ) - if (exhPreferences.exhLenientSync().get()) { + if (exhPreferences.exhLenientSync.get()) { errorList += error } else { status.value = error @@ -289,7 +289,7 @@ class FavoritesSyncHelper(val context: Context) { ) if (!explicitlyRetryExhRequest(10, request)) { - if (exhPreferences.exhLenientSync().get()) { + if (exhPreferences.exhLenientSync.get()) { errorList += FavoritesSyncStatus.SyncError.GallerySyncError.UnableToDeleteFromRemote } else { status.value = FavoritesSyncStatus.SyncError.GallerySyncError.UnableToDeleteFromRemote @@ -392,7 +392,7 @@ class FavoritesSyncHelper(val context: Context) { ) } - if (exhPreferences.exhLenientSync().get()) { + if (exhPreferences.exhLenientSync.get()) { errorList += error } else { status.value = error diff --git a/app/src/main/java/exh/log/EHDebugModeOverlay.kt b/app/src/main/java/exh/log/EHDebugModeOverlay.kt index 4e43bf2a8..8952d3444 100644 --- a/app/src/main/java/exh/log/EHDebugModeOverlay.kt +++ b/app/src/main/java/exh/log/EHDebugModeOverlay.kt @@ -87,7 +87,7 @@ private fun FpsDebugModeOverlay() { private fun EHDebugModeOverlay() { val scope = rememberCoroutineScope() val enableSourceBlacklist by remember { - Injekt.get().enableSourceBlacklist().asState(scope) + Injekt.get().enableSourceBlacklist.asState(scope) } val context = LocalContext.current Text( diff --git a/app/src/main/java/exh/md/utils/MdUtil.kt b/app/src/main/java/exh/md/utils/MdUtil.kt index 99d8a8fd5..7317e9945 100644 --- a/app/src/main/java/exh/md/utils/MdUtil.kt +++ b/app/src/main/java/exh/md/utils/MdUtil.kt @@ -193,7 +193,7 @@ class MdUtil { sourceManager: SourceManager = Injekt.get(), ): MangaDex? { return getEnabledMangaDexs(sourcePreferences, sourceManager).let { mangadexs -> - sourcePreferences.preferredMangaDexId().get().toLongOrNull()?.nullIfZero() + sourcePreferences.preferredMangaDexId.get().toLongOrNull()?.nullIfZero() ?.let { preferredMangaDexId -> mangadexs.firstOrNull { it.id == preferredMangaDexId } } @@ -205,8 +205,8 @@ class MdUtil { preferences: SourcePreferences, sourceManager: SourceManager = Injekt.get(), ): List { - val languages = preferences.enabledLanguages().get() - val disabledSourceIds = preferences.disabledSources().get() + val languages = preferences.enabledLanguages.get() + val disabledSourceIds = preferences.disabledSources.get() return sourceManager.getVisibleOnlineSources() .asSequence() diff --git a/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt b/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt index bfb5bd54e..4d185179a 100644 --- a/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt +++ b/app/src/main/java/exh/recs/batch/RecommendationSearchBottomSheetDialog.kt @@ -33,7 +33,7 @@ class RecommendationSearchBottomSheetDialogState(private val onSearchRequest: () private val preferences: SourcePreferences by injectLazy() fun initPreferences(binding: RecommendationSearchBottomSheetBinding) { - val flags = preferences.recommendationSearchFlags().get() + val flags = preferences.recommendationSearchFlags.get() binding.recSources.isChecked = SearchFlags.hasIncludeSources(flags) binding.recTrackers.isChecked = SearchFlags.hasIncludeTrackers(flags) @@ -53,7 +53,7 @@ class RecommendationSearchBottomSheetDialogState(private val onSearchRequest: () if (binding.recSources.isChecked) flags = flags or SearchFlags.INCLUDE_SOURCES if (binding.recTrackers.isChecked) flags = flags or SearchFlags.INCLUDE_TRACKERS if (binding.recHideLibraryEntries.isChecked) flags = flags or SearchFlags.HIDE_LIBRARY_RESULTS - preferences.recommendationSearchFlags().set(flags) + preferences.recommendationSearchFlags.set(flags) validate(binding) } diff --git a/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt b/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt index d3dccea02..a09637568 100644 --- a/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt +++ b/app/src/main/java/exh/recs/batch/RecommendationSearchHelper.kt @@ -70,7 +70,7 @@ class RecommendationSearchHelper(val context: Context) { } private suspend fun beginSearch(mangaList: List) { - val flags = preferences.recommendationSearchFlags().get() + val flags = preferences.recommendationSearchFlags.get() val libraryManga = getLibraryManga.await() val tracks = getTracks.await() @@ -192,7 +192,7 @@ class RecommendationSearchHelper(val context: Context) { libraryManga: List, tracks: List, ): List { - val flags = preferences.recommendationSearchFlags().get() + val flags = preferences.recommendationSearchFlags.get() if (!SearchFlags.hasHideLibraryResults(flags)) { return this diff --git a/app/src/main/java/exh/recs/sources/RecommendationPagingSource.kt b/app/src/main/java/exh/recs/sources/RecommendationPagingSource.kt index 732319dc4..d362897ec 100644 --- a/app/src/main/java/exh/recs/sources/RecommendationPagingSource.kt +++ b/app/src/main/java/exh/recs/sources/RecommendationPagingSource.kt @@ -53,7 +53,7 @@ abstract class RecommendationPagingSource( add(MyAnimeListPagingSource(manga)) // Only include MangaDex if the delegate sources are enabled and the source is MD-based - if (source.isMdBasedSource() && Injekt.get().delegateSources().get()) { + if (source.isMdBasedSource() && Injekt.get().delegateSources.get()) { add(MangaDexSimilarPagingSource(manga, source.getMainSource() as MangaDex)) } diff --git a/app/src/main/java/exh/uconfig/EHConfigurator.kt b/app/src/main/java/exh/uconfig/EHConfigurator.kt index 4d0dde552..446355eea 100644 --- a/app/src/main/java/exh/uconfig/EHConfigurator.kt +++ b/app/src/main/java/exh/uconfig/EHConfigurator.kt @@ -146,13 +146,13 @@ class EHConfigurator(val context: Context) { }?.removePrefix("hath_perks=")?.substringBefore(';') if (keyCookie != null) { - exhPreferences.exhSettingsKey().set(keyCookie) + exhPreferences.exhSettingsKey.set(keyCookie) } if (sessionCookie != null) { - exhPreferences.exhSessionCookie().set(sessionCookie) + exhPreferences.exhSessionCookie.set(sessionCookie) } if (hathPerksCookie != null) { - exhPreferences.exhHathPerksCookies().set(hathPerksCookie) + exhPreferences.exhHathPerksCookies.set(hathPerksCookie) } } diff --git a/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt b/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt index 3ccba1d03..59087f6ab 100644 --- a/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt +++ b/app/src/main/java/exh/uconfig/EhUConfigBuilder.kt @@ -12,7 +12,7 @@ class EhUConfigBuilder { val configItems = mutableListOf() configItems += when ( - exhPreferences.imageQuality() + exhPreferences.imageQuality .get() .lowercase(Locale.getDefault()) ) { @@ -25,19 +25,19 @@ class EhUConfigBuilder { else -> Entry.ImageSize.AUTO } - configItems += when (exhPreferences.useHentaiAtHome().get()) { + configItems += when (exhPreferences.useHentaiAtHome.get()) { 2 -> Entry.UseHentaiAtHome.NO 1 -> Entry.UseHentaiAtHome.DEFAULTONLY else -> Entry.UseHentaiAtHome.ANY } - configItems += if (exhPreferences.useJapaneseTitle().get()) { + configItems += if (exhPreferences.useJapaneseTitle.get()) { Entry.TitleDisplayLanguage.JAPANESE } else { Entry.TitleDisplayLanguage.DEFAULT } - configItems += if (exhPreferences.exhUseOriginalImages().get()) { + configItems += if (exhPreferences.exhUseOriginalImages.get()) { Entry.UseOriginalImages.YES } else { Entry.UseOriginalImages.NO @@ -61,13 +61,13 @@ class EhUConfigBuilder { configItems += Entry.UseMPV() configItems += Entry.ShowPopularRightNowPane() - configItems += Entry.TagFilteringThreshold(exhPreferences.ehTagFilterValue().get()) - configItems += Entry.TagWatchingThreshold(exhPreferences.ehTagWatchingValue().get()) + configItems += Entry.TagFilteringThreshold(exhPreferences.ehTagFilterValue.get()) + configItems += Entry.TagWatchingThreshold(exhPreferences.ehTagWatchingValue.get()) - configItems += Entry.LanguageSystem().getLanguages(exhPreferences.exhSettingsLanguages().get().split("\n")) + configItems += Entry.LanguageSystem().getLanguages(exhPreferences.exhSettingsLanguages.get().split("\n")) configItems += Entry.Categories().categoryConfigs( - exhPreferences.exhEnabledCategories().get().split(",").map { + exhPreferences.exhEnabledCategories.get().split(",").map { it.toBoolean() }, ) diff --git a/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt b/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt index 84d9e3f99..14e47ccbd 100644 --- a/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt +++ b/app/src/main/java/exh/ui/batchadd/BatchAddScreenModel.kt @@ -37,7 +37,7 @@ class BatchAddScreenModel( private fun addGalleries(context: Context, galleries: String) { val splitGalleries = if (ehVisitedRegex.containsMatchIn(galleries)) { - val url = if (exhPreferences.enableExhentai().get()) { + val url = if (exhPreferences.enableExhentai.get()) { "https://exhentai.org/g/" } else { "https://e-hentai.org/g/" diff --git a/app/src/main/java/exh/ui/login/EhLoginActivity.kt b/app/src/main/java/exh/ui/login/EhLoginActivity.kt index 45325b264..414a7deb2 100644 --- a/app/src/main/java/exh/ui/login/EhLoginActivity.kt +++ b/app/src/main/java/exh/ui/login/EhLoginActivity.kt @@ -122,7 +122,7 @@ class EhLoginActivity : BaseActivity() { } else if (parsedUrl.host.equals("exhentai.org", ignoreCase = true)) { // At ExHentai, check that everything worked out... if (applyExHentaiCookies(url, customIgneous)) { - exhPreferences.enableExhentai().set(true) + exhPreferences.enableExhentai.set(true) setResult(RESULT_OK) finish() } @@ -171,9 +171,9 @@ class EhLoginActivity : BaseActivity() { if (memberId == null || passHash == null || igneous == null) return false // Update prefs - exhPreferences.memberIdVal().set(memberId) - exhPreferences.passHashVal().set(passHash) - exhPreferences.igneousVal().set(igneous) + exhPreferences.memberIdVal.set(memberId) + exhPreferences.passHashVal.set(passHash) + exhPreferences.igneousVal.set(igneous) return true } diff --git a/app/src/main/java/exh/util/DataSaver.kt b/app/src/main/java/exh/util/DataSaver.kt index 9fa098c02..4e81d2e10 100644 --- a/app/src/main/java/exh/util/DataSaver.kt +++ b/app/src/main/java/exh/util/DataSaver.kt @@ -34,8 +34,8 @@ interface DataSaver { } fun DataSaver(source: Source, preferences: SourcePreferences): DataSaver { - val dataSaver = preferences.dataSaver().get() - if (dataSaver != NONE && source.id.toString() in preferences.dataSaverExcludedSources().get()) { + val dataSaver = preferences.dataSaver.get() + if (dataSaver != NONE && source.id.toString() in preferences.dataSaverExcludedSources.get()) { return DataSaver.NoOp } return when (dataSaver) { @@ -46,14 +46,14 @@ fun DataSaver(source: Source, preferences: SourcePreferences): DataSaver { } private class BandwidthHeroDataSaver(preferences: SourcePreferences) : DataSaver { - private val dataSavedServer = preferences.dataSaverServer().get().trimEnd('/') + private val dataSavedServer = preferences.dataSaverServer.get().trimEnd('/') - private val ignoreJpg = preferences.dataSaverIgnoreJpeg().get() - private val ignoreGif = preferences.dataSaverIgnoreGif().get() + private val ignoreJpg = preferences.dataSaverIgnoreJpeg.get() + private val ignoreGif = preferences.dataSaverIgnoreGif.get() - private val format = preferences.dataSaverImageFormatJpeg().toIntRepresentation() - private val quality = preferences.dataSaverImageQuality().get() - private val colorBW = preferences.dataSaverColorBW().toIntRepresentation() + private val format = preferences.dataSaverImageFormatJpeg.toIntRepresentation() + private val quality = preferences.dataSaverImageQuality.get() + private val colorBW = preferences.dataSaverColorBW.toIntRepresentation() override fun compress(imageUrl: String): String { return if (dataSavedServer.isNotBlank() && !imageUrl.contains(dataSavedServer)) { @@ -76,11 +76,11 @@ private class BandwidthHeroDataSaver(preferences: SourcePreferences) : DataSaver } private class WsrvNlDataSaver(preferences: SourcePreferences) : DataSaver { - private val ignoreJpg = preferences.dataSaverIgnoreJpeg().get() - private val ignoreGif = preferences.dataSaverIgnoreGif().get() + private val ignoreJpg = preferences.dataSaverIgnoreJpeg.get() + private val ignoreGif = preferences.dataSaverIgnoreGif.get() - private val format = preferences.dataSaverImageFormatJpeg().get() - private val quality = preferences.dataSaverImageQuality().get() + private val format = preferences.dataSaverImageFormatJpeg.get() + private val quality = preferences.dataSaverImageQuality.get() override fun compress(imageUrl: String): String { return when { diff --git a/app/src/main/java/mihon/core/migration/migrations/AlwaysBackupMigration.kt b/app/src/main/java/mihon/core/migration/migrations/AlwaysBackupMigration.kt index 5aafb8ce3..3d1e19d3b 100644 --- a/app/src/main/java/mihon/core/migration/migrations/AlwaysBackupMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/AlwaysBackupMigration.kt @@ -10,8 +10,8 @@ class AlwaysBackupMigration : Migration { override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext { val backupPreferences = migrationContext.get() ?: return@withIOContext false - if (backupPreferences.backupInterval().get() == 0) { - backupPreferences.backupInterval().set(12) + if (backupPreferences.backupInterval.get() == 0) { + backupPreferences.backupInterval.set(12) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/CategoryPreferencesCleanupMigration.kt b/app/src/main/java/mihon/core/migration/migrations/CategoryPreferencesCleanupMigration.kt index dcf4a6122..734b58f3b 100644 --- a/app/src/main/java/mihon/core/migration/migrations/CategoryPreferencesCleanupMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/CategoryPreferencesCleanupMigration.kt @@ -17,17 +17,17 @@ class CategoryPreferencesCleanupMigration : Migration { val getCategories = migrationContext.get() ?: return@withIOContext false val allCategories = getCategories.await().map { it.id.toString() }.toSet() - val defaultCategory = libraryPreferences.defaultCategory().get() + val defaultCategory = libraryPreferences.defaultCategory.get() if (defaultCategory.toString() !in allCategories) { - 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, ) categoryPreferences.forEach { preference -> val ids = preference.get() diff --git a/app/src/main/java/mihon/core/migration/migrations/ChangeMiuiExtensionInstallerMigration.kt b/app/src/main/java/mihon/core/migration/migrations/ChangeMiuiExtensionInstallerMigration.kt index cdee8ae4d..e794d7986 100644 --- a/app/src/main/java/mihon/core/migration/migrations/ChangeMiuiExtensionInstallerMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/ChangeMiuiExtensionInstallerMigration.kt @@ -13,10 +13,10 @@ class ChangeMiuiExtensionInstallerMigration : Migration { val basePreferences = migrationContext.get() ?: return@withIOContext false if ( DeviceUtil.isMiui && - basePreferences.extensionInstaller().get() == BasePreferences.ExtensionInstaller + basePreferences.extensionInstaller.get() == BasePreferences.ExtensionInstaller .PACKAGEINSTALLER ) { - basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.LEGACY) + basePreferences.extensionInstaller.set(BasePreferences.ExtensionInstaller.LEGACY) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/ChangeThemeModeToUppercaseMigration.kt b/app/src/main/java/mihon/core/migration/migrations/ChangeThemeModeToUppercaseMigration.kt index 026cbeddc..d2d562e82 100644 --- a/app/src/main/java/mihon/core/migration/migrations/ChangeThemeModeToUppercaseMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/ChangeThemeModeToUppercaseMigration.kt @@ -15,10 +15,10 @@ class ChangeThemeModeToUppercaseMigration : Migration { val context = migrationContext.get() ?: return@withIOContext false val prefs = PreferenceManager.getDefaultSharedPreferences(context) val uiPreferences = migrationContext.get() ?: return@withIOContext false - if (uiPreferences.themeMode().isSet()) { + if (uiPreferences.themeMode.isSet()) { prefs.edit { - val themeMode = prefs.getString(uiPreferences.themeMode().key(), null) ?: return@edit - putString(uiPreferences.themeMode().key(), themeMode.uppercase()) + val themeMode = prefs.getString(uiPreferences.themeMode.key(), null) ?: return@edit + putString(uiPreferences.themeMode.key(), themeMode.uppercase()) } } diff --git a/app/src/main/java/mihon/core/migration/migrations/InstallationIdMigration.kt b/app/src/main/java/mihon/core/migration/migrations/InstallationIdMigration.kt index c9c3836ac..a19d5ff46 100644 --- a/app/src/main/java/mihon/core/migration/migrations/InstallationIdMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/InstallationIdMigration.kt @@ -11,7 +11,7 @@ class InstallationIdMigration : Migration { @OptIn(ExperimentalUuidApi::class) override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val installationId = migrationContext.get()?.installationId() ?: return false + val installationId = migrationContext.get()?.installationId ?: return false if (!installationId.isSet()) installationId.set(FeatureFlags.newInstallationId()) return true } diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveCacheToDiskSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveCacheToDiskSettingMigration.kt index 03c7d2dd9..5c4a398bb 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveCacheToDiskSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveCacheToDiskSettingMigration.kt @@ -16,7 +16,7 @@ class MoveCacheToDiskSettingMigration : Migration { val readerPreferences = migrationContext.get() ?: return@withIOContext false val cacheImagesToDisk = prefs.getBoolean("cache_archive_manga_on_disk", false) if (cacheImagesToDisk) { - readerPreferences.archiveReaderMode().set(ReaderPreferences.ArchiveReaderMode.CACHE_TO_DISK) + readerPreferences.archiveReaderMode.set(ReaderPreferences.ArchiveReaderMode.CACHE_TO_DISK) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveDOHSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveDOHSettingMigration.kt index 6e3ff17a6..63a3e0627 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveDOHSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveDOHSettingMigration.kt @@ -20,7 +20,7 @@ class MoveDOHSettingMigration : Migration { val wasDohEnabled = prefs.getBoolean("enable_doh", false) if (wasDohEnabled) { prefs.edit { - putInt(networkPreferences.dohProvider().key(), PREF_DOH_CLOUDFLARE) + putInt(networkPreferences.dohProvider.key(), PREF_DOH_CLOUDFLARE) remove("enable_doh") } } diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveExtensionRepoSettingsMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveExtensionRepoSettingsMigration.kt index 854c15f2f..347302a75 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveExtensionRepoSettingsMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveExtensionRepoSettingsMigration.kt @@ -20,7 +20,7 @@ class MoveExtensionRepoSettingsMigration : Migration { val prefs = PreferenceManager.getDefaultSharedPreferences(context) val preferenceStore = migrationContext.get() ?: return@withIOContext false val sourcePreferences = migrationContext.get() ?: return@withIOContext false - sourcePreferences.extensionRepos().getAndSet { + sourcePreferences.extensionRepos.getAndSet { it.map { "https://raw.githubusercontent.com/$it/repo" }.toSet() } MigrateUtils.replacePreferences( diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveLibraryNonCompleteSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveLibraryNonCompleteSettingMigration.kt index 6d79bb5bc..a49d12e22 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveLibraryNonCompleteSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveLibraryNonCompleteSettingMigration.kt @@ -17,7 +17,7 @@ class MoveLibraryNonCompleteSettingMigration : Migration { val libraryPreferences = migrationContext.get() ?: return@withIOContext false val oldUpdateOngoingOnly = prefs.getBoolean("pref_update_only_non_completed_key", true) if (!oldUpdateOngoingOnly) { - libraryPreferences.autoUpdateMangaRestrictions() -= LibraryPreferences.MANGA_NON_COMPLETED + libraryPreferences.autoUpdateMangaRestrictions -= LibraryPreferences.MANGA_NON_COMPLETED } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveLibrarySortingSettingsMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveLibrarySortingSettingsMigration.kt index 042eecd6d..42c62d082 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveLibrarySortingSettingsMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveLibrarySortingSettingsMigration.kt @@ -17,7 +17,7 @@ class MoveLibrarySortingSettingsMigration : Migration { val prefs = PreferenceManager.getDefaultSharedPreferences(context) val libraryPreferences = migrationContext.get() ?: return@withIOContext false try { - val oldSortingMode = prefs.getInt(libraryPreferences.sortingMode().key(), 0 /* ALPHABETICAL */) + val oldSortingMode = prefs.getInt(libraryPreferences.sortingMode.key(), 0 /* ALPHABETICAL */) val oldSortingDirection = prefs.getBoolean("library_sorting_ascending", true) val newSortingMode = when (oldSortingMode) { @@ -40,12 +40,12 @@ class MoveLibrarySortingSettingsMigration : Migration { } prefs.edit(commit = true) { - remove(libraryPreferences.sortingMode().key()) + remove(libraryPreferences.sortingMode.key()) remove("library_sorting_ascending") } prefs.edit { - putString(libraryPreferences.sortingMode().key(), newSortingMode) + putString(libraryPreferences.sortingMode.key(), newSortingMode) putString("library_sorting_ascending", newSortingDirection) } } catch (e: Exception) { diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveReaderTapSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveReaderTapSettingMigration.kt index 1d7ec575d..d8584642d 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveReaderTapSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveReaderTapSettingMigration.kt @@ -16,8 +16,8 @@ class MoveReaderTapSettingMigration : Migration { val readerPreferences = migrationContext.get() ?: return@withIOContext false val oldReaderTap = prefs.getBoolean("reader_tap", false) if (!oldReaderTap) { - readerPreferences.navigationModePager().set(5) - readerPreferences.navigationModeWebtoon().set(5) + readerPreferences.navigationModePager.set(5) + readerPreferences.navigationModeWebtoon.set(5) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveReadingButtonSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveReadingButtonSettingMigration.kt index 83b866b64..a9a1a1df0 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveReadingButtonSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveReadingButtonSettingMigration.kt @@ -15,7 +15,7 @@ class MoveReadingButtonSettingMigration : Migration { val prefs = PreferenceManager.getDefaultSharedPreferences(context) val libraryPreferences = migrationContext.get() ?: return@withIOContext false if (prefs.getBoolean("start_reading_button", false)) { - libraryPreferences.showContinueReadingButton().set(true) + libraryPreferences.showContinueReadingButton.set(true) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveRelativeTimeSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveRelativeTimeSettingMigration.kt index 82d955307..ddf3ad357 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveRelativeTimeSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveRelativeTimeSettingMigration.kt @@ -14,7 +14,7 @@ class MoveRelativeTimeSettingMigration : Migration { val uiPreferences = migrationContext.get() ?: return@withIOContext false val pref = preferenceStore.getInt("relative_time", 7) if (pref.get() == 0) { - uiPreferences.relativeTime().set(false) + uiPreferences.relativeTime.set(false) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveSecureScreenSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveSecureScreenSettingMigration.kt index 24e734d04..7e597d2cf 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveSecureScreenSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveSecureScreenSettingMigration.kt @@ -16,7 +16,7 @@ class MoveSecureScreenSettingMigration : Migration { val securityPreferences = migrationContext.get() ?: return@withIOContext false val oldSecureScreen = prefs.getBoolean("secure_screen", false) if (oldSecureScreen) { - securityPreferences.secureScreen().set(SecurityPreferences.SecureScreenMode.ALWAYS) + securityPreferences.secureScreen.set(SecurityPreferences.SecureScreenMode.ALWAYS) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingMigration.kt index f8d51326d..3e556d109 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingMigration.kt @@ -16,9 +16,9 @@ class MoveSortingModeSettingMigration : Migration { val libraryPreferences = migrationContext.get() ?: return@withIOContext false val prefs = PreferenceManager.getDefaultSharedPreferences(context) prefs.edit { - val sort = prefs.getString(libraryPreferences.sortingMode().key(), null) ?: return@edit + val sort = prefs.getString(libraryPreferences.sortingMode.key(), null) ?: return@edit val direction = prefs.getString("library_sorting_ascending", "ASCENDING")!! - putString(libraryPreferences.sortingMode().key(), "$sort,$direction") + putString(libraryPreferences.sortingMode.key(), "$sort,$direction") remove("library_sorting_ascending") } diff --git a/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingsMigration.kt b/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingsMigration.kt index 446852a22..7da30356e 100644 --- a/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingsMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/MoveSortingModeSettingsMigration.kt @@ -20,7 +20,7 @@ class MoveSortingModeSettingsMigration : Migration { val handler = migrationContext.get() ?: return@withIOContext false // Handle renamed enum values val newSortingMode = when ( - val oldSortingMode = prefs.getString(libraryPreferences.sortingMode().key(), "ALPHABETICAL") + val oldSortingMode = prefs.getString(libraryPreferences.sortingMode.key(), "ALPHABETICAL") ) { "LAST_CHECKED" -> "LAST_MANGA_UPDATE" "UNREAD" -> "UNREAD_COUNT" @@ -29,7 +29,7 @@ class MoveSortingModeSettingsMigration : Migration { else -> oldSortingMode } prefs.edit { - putString(libraryPreferences.sortingMode().key(), newSortingMode) + putString(libraryPreferences.sortingMode.key(), newSortingMode) } handler.await(true) { categoriesQueries.getCategories(CategoryMapper::mapCategory).executeAsList() diff --git a/app/src/main/java/mihon/core/migration/migrations/RemoveBatteryNotLowRestrictionMigration.kt b/app/src/main/java/mihon/core/migration/migrations/RemoveBatteryNotLowRestrictionMigration.kt index 4381f3a4f..b78342470 100644 --- a/app/src/main/java/mihon/core/migration/migrations/RemoveBatteryNotLowRestrictionMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/RemoveBatteryNotLowRestrictionMigration.kt @@ -11,7 +11,7 @@ class RemoveBatteryNotLowRestrictionMigration : Migration { override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext { val libraryPreferences = migrationContext.get() ?: return@withIOContext false - val pref = libraryPreferences.autoUpdateDeviceRestrictions() + val pref = libraryPreferences.autoUpdateDeviceRestrictions if (pref.isSet() && "battery_not_low" in pref.get()) { pref.getAndSet { it - "battery_not_low" } } diff --git a/app/src/main/java/mihon/core/migration/migrations/RemoveOldReaderThemeMigration.kt b/app/src/main/java/mihon/core/migration/migrations/RemoveOldReaderThemeMigration.kt index feeddfb80..08baa67ee 100644 --- a/app/src/main/java/mihon/core/migration/migrations/RemoveOldReaderThemeMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/RemoveOldReaderThemeMigration.kt @@ -10,9 +10,9 @@ class RemoveOldReaderThemeMigration : Migration { override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext { val readerPreferences = migrationContext.get() ?: return@withIOContext false - val readerTheme = readerPreferences.readerTheme().get() + val readerTheme = readerPreferences.readerTheme.get() if (readerTheme == 4) { - readerPreferences.readerTheme().set(3) + readerPreferences.readerTheme.set(3) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/RemoveShortLibraryUpdatesMigration.kt b/app/src/main/java/mihon/core/migration/migrations/RemoveShortLibraryUpdatesMigration.kt index 5c8d08cfe..69673fb6e 100644 --- a/app/src/main/java/mihon/core/migration/migrations/RemoveShortLibraryUpdatesMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/RemoveShortLibraryUpdatesMigration.kt @@ -10,9 +10,9 @@ class RemoveShortLibraryUpdatesMigration : Migration { override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext { val libraryPreferences = migrationContext.get() ?: return@withIOContext false - val updateInterval = libraryPreferences.autoUpdateInterval().get() + val updateInterval = libraryPreferences.autoUpdateInterval.get() if (updateInterval in listOf(3, 4, 6, 8)) { - libraryPreferences.autoUpdateInterval().set(12) + libraryPreferences.autoUpdateInterval.set(12) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/RemoveShorterLibraryUpdatesMigration.kt b/app/src/main/java/mihon/core/migration/migrations/RemoveShorterLibraryUpdatesMigration.kt index 5716ca125..3e1072007 100644 --- a/app/src/main/java/mihon/core/migration/migrations/RemoveShorterLibraryUpdatesMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/RemoveShorterLibraryUpdatesMigration.kt @@ -10,9 +10,9 @@ class RemoveShorterLibraryUpdatesMigration : Migration { override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext { val libraryPreferences = migrationContext.get() ?: return@withIOContext false - val updateInterval = libraryPreferences.autoUpdateInterval().get() + val updateInterval = libraryPreferences.autoUpdateInterval.get() if (updateInterval == 1 || updateInterval == 2) { - libraryPreferences.autoUpdateInterval().set(3) + libraryPreferences.autoUpdateInterval.set(3) } return@withIOContext true diff --git a/app/src/main/java/mihon/core/migration/migrations/ResetFilterAndSortSettingsMigration.kt b/app/src/main/java/mihon/core/migration/migrations/ResetFilterAndSortSettingsMigration.kt index 2ac6f59fe..5bf1b2463 100644 --- a/app/src/main/java/mihon/core/migration/migrations/ResetFilterAndSortSettingsMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/ResetFilterAndSortSettingsMigration.kt @@ -16,12 +16,12 @@ class ResetFilterAndSortSettingsMigration : Migration { val prefs = PreferenceManager.getDefaultSharedPreferences(context) val libraryPreferences = migrationContext.get() ?: return@withIOContext false val preferences = listOf( - libraryPreferences.filterChapterByRead(), - libraryPreferences.filterChapterByDownloaded(), - libraryPreferences.filterChapterByBookmarked(), - libraryPreferences.sortChapterBySourceOrNumber(), - libraryPreferences.displayChapterByNameOrNumber(), - libraryPreferences.sortChapterByAscendingOrDescending(), + libraryPreferences.filterChapterByRead, + libraryPreferences.filterChapterByDownloaded, + libraryPreferences.filterChapterByBookmarked, + libraryPreferences.sortChapterBySourceOrNumber, + libraryPreferences.displayChapterByNameOrNumber, + libraryPreferences.sortChapterByAscendingOrDescending, ) prefs.edit { diff --git a/app/src/main/java/mihon/core/migration/migrations/TrustExtensionRepositoryMigration.kt b/app/src/main/java/mihon/core/migration/migrations/TrustExtensionRepositoryMigration.kt index b5dd80ff5..fb9011e5f 100644 --- a/app/src/main/java/mihon/core/migration/migrations/TrustExtensionRepositoryMigration.kt +++ b/app/src/main/java/mihon/core/migration/migrations/TrustExtensionRepositoryMigration.kt @@ -16,7 +16,7 @@ class TrustExtensionRepositoryMigration : Migration { val sourcePreferences = migrationContext.get() ?: return@withIOContext false val extensionRepositoryRepository = migrationContext.get() ?: return@withIOContext false - for ((index, source) in sourcePreferences.extensionRepos().get().withIndex()) { + for ((index, source) in sourcePreferences.extensionRepos.get().withIndex()) { try { extensionRepositoryRepository.upsertRepo( source, @@ -29,7 +29,7 @@ class TrustExtensionRepositoryMigration : Migration { logcat(LogPriority.ERROR, e) { "Error Migrating Extension Repo with baseUrl: $source" } } } - sourcePreferences.extensionRepos().delete() + sourcePreferences.extensionRepos.delete() return@withIOContext true } } diff --git a/app/src/main/java/mihon/domain/migration/usecases/MigrateMangaUseCase.kt b/app/src/main/java/mihon/domain/migration/usecases/MigrateMangaUseCase.kt index 44353fb01..a329c8167 100644 --- a/app/src/main/java/mihon/domain/migration/usecases/MigrateMangaUseCase.kt +++ b/app/src/main/java/mihon/domain/migration/usecases/MigrateMangaUseCase.kt @@ -43,7 +43,7 @@ class MigrateMangaUseCase( suspend operator fun invoke(current: Manga, target: Manga, replace: Boolean) { val targetSource = sourceManager.get(target.source) ?: return val currentSource = sourceManager.get(current.source) - val flags = sourcePreferences.migrationFlags().get() + val flags = sourcePreferences.migrationFlags.get() try { val chapters = targetSource.getChapterList(target.toSManga()) diff --git a/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreen.kt b/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreen.kt index 00a1b8cd5..8bfa513b8 100644 --- a/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreen.kt +++ b/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreen.kt @@ -341,10 +341,10 @@ class MigrationConfigScreen(private val mangaIds: Collection) : Screen() { } private fun initSources() { - val languages = sourcePreferences.enabledLanguages().get() - val pinnedSources = sourcePreferences.pinnedSources().get().mapNotNull { it.toLongOrNull() } - val includedSources = sourcePreferences.migrationSources().get() - val disabledSources = sourcePreferences.disabledSources().get() + val languages = sourcePreferences.enabledLanguages.get() + val pinnedSources = sourcePreferences.pinnedSources.get().mapNotNull { it.toLongOrNull() } + val includedSources = sourcePreferences.migrationSources.get() + val disabledSources = sourcePreferences.disabledSources.get() .mapNotNull { it.toLongOrNull() } val sources = sourceManager.getCatalogueSources() .asSequence() @@ -384,8 +384,8 @@ class MigrationConfigScreen(private val mangaIds: Collection) : Screen() { } fun toggleSelection(config: SelectionConfig) { - val pinnedSources = sourcePreferences.pinnedSources().get().mapNotNull { it.toLongOrNull() } - val disabledSources = sourcePreferences.disabledSources().get().mapNotNull { it.toLongOrNull() } + val pinnedSources = sourcePreferences.pinnedSources.get().mapNotNull { it.toLongOrNull() } + val disabledSources = sourcePreferences.disabledSources.get().mapNotNull { it.toLongOrNull() } val isSelected: (Long) -> Boolean = { when (config) { SelectionConfig.All -> true @@ -415,7 +415,7 @@ class MigrationConfigScreen(private val mangaIds: Collection) : Screen() { state.value.sources .filter { source -> source.isSelected } .map { source -> source.source.id } - .let { sources -> sourcePreferences.migrationSources().set(sources) } + .let { sources -> sourcePreferences.migrationSources.set(sources) } } data class State( diff --git a/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt b/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt index 20d97b0e8..28cd1c5f6 100644 --- a/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt +++ b/app/src/main/java/mihon/feature/migration/config/MigrationConfigScreenSheet.kt @@ -53,7 +53,7 @@ fun MigrationConfigScreenSheet( onStartMigration: (extraSearchQuery: String?) -> Unit, ) { var extraSearchQuery by rememberSaveable { mutableStateOf("") } - val migrationFlags by preferences.migrationFlags().collectAsState() + val migrationFlags by preferences.migrationFlags.collectAsState() AdaptiveSheet(onDismissRequest = onDismissRequest) { Column(modifier = Modifier.fillMaxWidth()) { Column( @@ -86,7 +86,7 @@ fun MigrationConfigScreenSheet( FilterChip( selected = selected, onClick = { - preferences.migrationFlags().getAndSet { currentFlags -> + preferences.migrationFlags.getAndSet { currentFlags -> if (flag in currentFlags) { currentFlags - flag } else { @@ -112,7 +112,7 @@ fun MigrationConfigScreenSheet( subtitle = null, checked = removeDownloads, onClick = { - preferences.migrationFlags().getAndSet { + preferences.migrationFlags.getAndSet { if (removeDownloads) { it - MigrationFlag.REMOVE_DOWNLOAD } else { @@ -140,24 +140,24 @@ fun MigrationConfigScreenSheet( MigrationSheetSwitchItem( title = stringResource(MR.strings.migrationConfigScreen_hideUnmatchedTitle), subtitle = null, - preference = preferences.migrationHideUnmatched(), + preference = preferences.migrationHideUnmatched, ) MigrationSheetSwitchItem( title = stringResource(MR.strings.migrationConfigScreen_hideWithoutUpdatesTitle), subtitle = stringResource(MR.strings.migrationConfigScreen_hideWithoutUpdatesSubtitle), - preference = preferences.migrationHideWithoutUpdates(), + preference = preferences.migrationHideWithoutUpdates, ) MigrationSheetDividerItem() MigrationSheetWarningItem(stringResource(MR.strings.migrationConfigScreen_enhancedOptionsWarning)) MigrationSheetSwitchItem( title = stringResource(MR.strings.migrationConfigScreen_deepSearchModeTitle), subtitle = stringResource(MR.strings.migrationConfigScreen_deepSearchModeSubtitle), - preference = preferences.migrationDeepSearchMode(), + preference = preferences.migrationDeepSearchMode, ) MigrationSheetSwitchItem( title = stringResource(MR.strings.migrationConfigScreen_prioritizeByChaptersTitle), subtitle = stringResource(MR.strings.migrationConfigScreen_prioritizeByChaptersSubtitle), - preference = preferences.migrationPrioritizeByChapters(), + preference = preferences.migrationPrioritizeByChapters, ) } HorizontalDivider() diff --git a/app/src/main/java/mihon/feature/migration/dialog/MigrateMangaDialog.kt b/app/src/main/java/mihon/feature/migration/dialog/MigrateMangaDialog.kt index ffc519c56..f57e2123d 100644 --- a/app/src/main/java/mihon/feature/migration/dialog/MigrateMangaDialog.kt +++ b/app/src/main/java/mihon/feature/migration/dialog/MigrateMangaDialog.kt @@ -143,7 +143,7 @@ private class MigrateDialogScreenModel( if (applicable) add(it) } } - val selectedFlags = sourcePreference.migrationFlags().get() + val selectedFlags = sourcePreference.migrationFlags.get() mutableState.update { State( current = current, @@ -167,7 +167,7 @@ private class MigrateDialogScreenModel( val state = state.value val current = state.current ?: return val target = state.target ?: return - sourcePreference.migrationFlags().set(state.selectedFlags) + sourcePreference.migrationFlags.set(state.selectedFlags) mutableState.update { it.copy(isMigrating = true) } migrateManga(current, target, replace) mutableState.update { it.copy(isMigrating = false, isMigrated = true) } diff --git a/app/src/main/java/mihon/feature/migration/list/MigrationListScreenModel.kt b/app/src/main/java/mihon/feature/migration/list/MigrationListScreenModel.kt index 3da75bd91..789e7ed2e 100644 --- a/app/src/main/java/mihon/feature/migration/list/MigrationListScreenModel.kt +++ b/app/src/main/java/mihon/feature/migration/list/MigrationListScreenModel.kt @@ -66,8 +66,8 @@ class MigrationListScreenModel( val items inline get() = state.value.items - private val hideUnmatched = preferences.migrationHideUnmatched().get() - private val hideWithoutUpdates = preferences.migrationHideWithoutUpdates().get() + private val hideUnmatched = preferences.migrationHideUnmatched.get() + private val hideWithoutUpdates = preferences.migrationHideWithoutUpdates.get() private val navigateBackChannel = Channel() val navigateBackEvent = navigateBackChannel.receiveAsFlow() @@ -119,10 +119,10 @@ class MigrationListScreenModel( // SY --> throttleManager.resetThrottle() // SY <-- - val prioritizeByChapters = preferences.migrationPrioritizeByChapters().get() - val deepSearchMode = preferences.migrationDeepSearchMode().get() + val prioritizeByChapters = preferences.migrationPrioritizeByChapters.get() + val deepSearchMode = preferences.migrationDeepSearchMode.get() - val sources = preferences.migrationSources().get() + val sources = preferences.migrationSources.get() .mapNotNull { sourceManager.get(it) as? CatalogueSource } for (manga in mangas) { diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/PrivacyPreferences.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/PrivacyPreferences.kt index ebf5692d8..cdb0098fb 100644 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/PrivacyPreferences.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/PrivacyPreferences.kt @@ -1,11 +1,12 @@ package eu.kanade.tachiyomi.core.security +import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore class PrivacyPreferences( - private val preferenceStore: PreferenceStore, + preferenceStore: PreferenceStore, ) { - fun crashlytics() = preferenceStore.getBoolean("crashlytics", true) + val crashlytics: Preference = preferenceStore.getBoolean("crashlytics", true) - fun analytics() = preferenceStore.getBoolean("analytics", true) + val analytics: Preference = preferenceStore.getBoolean("analytics", true) } diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/SecurityPreferences.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/SecurityPreferences.kt index f7749c15a..18e07e58a 100644 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/SecurityPreferences.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/core/security/SecurityPreferences.kt @@ -8,41 +8,44 @@ import tachiyomi.i18n.MR import tachiyomi.i18n.sy.SYMR class SecurityPreferences( - private val preferenceStore: PreferenceStore, + preferenceStore: PreferenceStore, ) { - fun useAuthenticator() = preferenceStore.getBoolean("use_biometric_lock", false) + val useAuthenticator: Preference = preferenceStore.getBoolean("use_biometric_lock", false) - fun lockAppAfter() = preferenceStore.getInt("lock_app_after", 0) + val lockAppAfter: Preference = preferenceStore.getInt("lock_app_after", 0) - fun secureScreen() = preferenceStore.getEnum("secure_screen_v2", SecureScreenMode.INCOGNITO) + val secureScreen: Preference = preferenceStore.getEnum( + "secure_screen_v2", + SecureScreenMode.INCOGNITO, + ) - fun hideNotificationContent() = preferenceStore.getBoolean("hide_notification_content", false) + val hideNotificationContent: Preference = preferenceStore.getBoolean("hide_notification_content", false) // SY --> - fun authenticatorTimeRanges() = this.preferenceStore.getStringSet("biometric_time_ranges", mutableSetOf()) + val authenticatorTimeRanges: Preference> = preferenceStore.getStringSet("biometric_time_ranges", mutableSetOf()) - fun authenticatorDays() = this.preferenceStore.getInt("biometric_days", 0x7F) + val authenticatorDays: Preference = preferenceStore.getInt("biometric_days", 0x7F) - fun encryptDatabase() = this.preferenceStore.getBoolean(Preference.appStateKey("encrypt_database"), false) + val encryptDatabase: Preference = preferenceStore.getBoolean(Preference.appStateKey("encrypt_database"), false) - fun sqlPassword() = this.preferenceStore.getString(Preference.appStateKey("sql_password"), "") + val sqlPassword: Preference = preferenceStore.getString(Preference.appStateKey("sql_password"), "") - fun passwordProtectDownloads() = preferenceStore.getBoolean( + val passwordProtectDownloads: Preference = preferenceStore.getBoolean( Preference.privateKey("password_protect_downloads"), false, ) - fun encryptionType() = this.preferenceStore.getEnum("encryption_type", EncryptionType.AES_256) + val encryptionType: Preference = preferenceStore.getEnum("encryption_type", EncryptionType.AES_256) - fun cbzPassword() = this.preferenceStore.getString(Preference.appStateKey("cbz_password"), "") + val cbzPassword: Preference = preferenceStore.getString(Preference.appStateKey("cbz_password"), "") // SY <-- /** * For app lock. Will be set when there is a pending timed lock. - * Otherwise this pref should be deleted. + * Otherwise, this pref should be deleted. */ - fun lastAppClosed() = preferenceStore.getLong( + val lastAppClosed: Preference = preferenceStore.getLong( Preference.appStateKey("last_app_closed"), 0, ) diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt index 5b0c5f8c9..b960f92ad 100755 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt @@ -48,7 +48,7 @@ open /* SY <-- */ class NetworkHelper( builder.addNetworkInterceptor(httpLoggingInterceptor) } - when (preferences.dohProvider().get()) { + when (preferences.dohProvider.get()) { PREF_DOH_CLOUDFLARE -> builder.dohCloudflare() PREF_DOH_GOOGLE -> builder.dohGoogle() PREF_DOH_ADGUARD -> builder.dohAdGuard() @@ -82,5 +82,5 @@ open /* SY <-- */ class NetworkHelper( /* SY --> */ open /* SY <-- */val cloudflareClient: OkHttpClient = client - fun defaultUserAgentProvider() = preferences.defaultUserAgent().get().trim() + fun defaultUserAgentProvider() = preferences.defaultUserAgent.get().trim() } diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkPreferences.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkPreferences.kt index d2034be86..8b853daf8 100644 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkPreferences.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkPreferences.kt @@ -4,22 +4,16 @@ import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore class NetworkPreferences( - private val preferenceStore: PreferenceStore, - private val verboseLogging: Boolean = false, + preferenceStore: PreferenceStore, + verboseLoggingDefault: Boolean = false, ) { - fun verboseLogging(): Preference { - return preferenceStore.getBoolean("verbose_logging", verboseLogging) - } + val verboseLogging: Preference = preferenceStore.getBoolean("verbose_logging", verboseLoggingDefault) - fun dohProvider(): Preference { - return preferenceStore.getInt("doh_provider", -1) - } + val dohProvider: Preference = preferenceStore.getInt("doh_provider", -1) - fun defaultUserAgent(): Preference { - return preferenceStore.getString( - "default_user_agent", - "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36", - ) - } + val defaultUserAgent: Preference = preferenceStore.getString( + "default_user_agent", + "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36", + ) } diff --git a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/storage/CbzCrypto.kt b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/storage/CbzCrypto.kt index 178fa3ac0..180e4ab20 100644 --- a/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/storage/CbzCrypto.kt +++ b/core/common/src/main/kotlin/eu/kanade/tachiyomi/util/storage/CbzCrypto.kt @@ -129,7 +129,7 @@ object CbzCrypto { } fun getDecryptedPasswordCbz(): ByteArray { - val encryptedPassword = securityPreferences.cbzPassword().get() + val encryptedPassword = securityPreferences.cbzPassword.get() if (encryptedPassword.isBlank()) error("This archive is encrypted please set a password") return decrypt(encryptedPassword, AliasCbz) @@ -144,7 +144,7 @@ object CbzCrypto { val passwordBuffer = Charsets.UTF_8.encode(CharBuffer.wrap(passwordArray)) val passwordBytes = ByteArray(passwordBuffer.limit()) passwordBuffer.get(passwordBytes) - securityPreferences.sqlPassword().set(encrypt(passwordBytes, encryptionCipherSql)) + securityPreferences.sqlPassword.set(encrypt(passwordBytes, encryptionCipherSql)) .also { passwordArray.fill('#') passwordBuffer.array().fill('#'.code.toByte()) @@ -153,22 +153,22 @@ object CbzCrypto { } fun getDecryptedPasswordSql(): ByteArray { - if (securityPreferences.sqlPassword().get().isBlank()) generateAndEncryptSqlPw() - return decrypt(securityPreferences.sqlPassword().get(), AliasSql) + if (securityPreferences.sqlPassword.get().isBlank()) generateAndEncryptSqlPw() + return decrypt(securityPreferences.sqlPassword.get(), AliasSql) } fun isPasswordSet(): Boolean { - return securityPreferences.cbzPassword().get().isNotEmpty() + return securityPreferences.cbzPassword.get().isNotEmpty() } fun isPasswordSetState(scope: CoroutineScope): StateFlow { - return securityPreferences.cbzPassword().changes() + return securityPreferences.cbzPassword.changes() .map { it.isNotEmpty() } .stateIn(scope, SharingStarted.Eagerly, false) } fun getPasswordProtectDlPref(): Boolean { - return securityPreferences.passwordProtectDownloads().get() + return securityPreferences.passwordProtectDownloads.get() } fun createComicInfoPadding(): String? { @@ -181,7 +181,7 @@ object CbzCrypto { } fun getPreferredEncryptionAlgo(): ByteArray = - when (securityPreferences.encryptionType().get()) { + when (securityPreferences.encryptionType.get()) { SecurityPreferences.EncryptionType.AES_256 -> "zip:encryption=aes256".toByteArray() SecurityPreferences.EncryptionType.AES_128 -> "zip:encryption=aes128".toByteArray() SecurityPreferences.EncryptionType.ZIP_STANDARD -> "zip:encryption=zipcrypt".toByteArray() diff --git a/core/common/src/main/kotlin/exh/pref/DelegateSourcePreferences.kt b/core/common/src/main/kotlin/exh/pref/DelegateSourcePreferences.kt index 941af12d6..8981fd25e 100644 --- a/core/common/src/main/kotlin/exh/pref/DelegateSourcePreferences.kt +++ b/core/common/src/main/kotlin/exh/pref/DelegateSourcePreferences.kt @@ -1,12 +1,13 @@ package exh.pref +import tachiyomi.core.common.preference.Preference import tachiyomi.core.common.preference.PreferenceStore class DelegateSourcePreferences( private val preferenceStore: PreferenceStore, ) { - fun delegateSources() = preferenceStore.getBoolean("eh_delegate_sources", true) + val delegateSources: Preference = preferenceStore.getBoolean("eh_delegate_sources", true) - fun useJapaneseTitle() = preferenceStore.getBoolean("use_jp_title", false) + val useJapaneseTitle: Preference = preferenceStore.getBoolean("use_jp_title", false) } diff --git a/domain/src/main/java/exh/source/ExhPreferences.kt b/domain/src/main/java/exh/source/ExhPreferences.kt index 1e6086d7f..1a4d04a1f 100644 --- a/domain/src/main/java/exh/source/ExhPreferences.kt +++ b/domain/src/main/java/exh/source/ExhPreferences.kt @@ -8,52 +8,52 @@ class ExhPreferences( ) { // SY --> - fun isHentaiEnabled() = preferenceStore.getBoolean("eh_is_hentai_enabled", true) + val isHentaiEnabled: Preference = preferenceStore.getBoolean("eh_is_hentai_enabled", true) - fun enableExhentai() = preferenceStore.getBoolean(Preference.Companion.privateKey("enable_exhentai"), false) + val enableExhentai: Preference = preferenceStore.getBoolean(Preference.Companion.privateKey("enable_exhentai"), false) - fun imageQuality() = preferenceStore.getString("ehentai_quality", "auto") + val imageQuality: Preference = preferenceStore.getString("ehentai_quality", "auto") - fun useHentaiAtHome() = preferenceStore.getInt("eh_enable_hah", 0) + val useHentaiAtHome: Preference = preferenceStore.getInt("eh_enable_hah", 0) - fun useJapaneseTitle() = preferenceStore.getBoolean("use_jp_title", false) + val useJapaneseTitle: Preference = preferenceStore.getBoolean("use_jp_title", false) - fun exhUseOriginalImages() = preferenceStore.getBoolean("eh_useOrigImages", false) + val exhUseOriginalImages: Preference = preferenceStore.getBoolean("eh_useOrigImages", false) - fun ehTagFilterValue() = preferenceStore.getInt("eh_tag_filtering_value", 0) + val ehTagFilterValue: Preference = preferenceStore.getInt("eh_tag_filtering_value", 0) - fun ehTagWatchingValue() = preferenceStore.getInt("eh_tag_watching_value", 0) + val ehTagWatchingValue: Preference = preferenceStore.getInt("eh_tag_watching_value", 0) // EH Cookies - fun memberIdVal() = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_member_id"), "") + val memberIdVal: Preference = 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 = preferenceStore.getString(Preference.Companion.privateKey("eh_ipb_pass_hash"), "") + val igneousVal: Preference = preferenceStore.getString(Preference.Companion.privateKey("eh_igneous"), "") + val ehSettingsProfile: Preference = preferenceStore.getInt(Preference.Companion.privateKey("eh_ehSettingsProfile"), -1) + val exhSettingsProfile: Preference = preferenceStore.getInt(Preference.Companion.privateKey("eh_exhSettingsProfile"), -1) + val exhSettingsKey: Preference = preferenceStore.getString(Preference.Companion.privateKey("eh_settingsKey"), "") + val exhSessionCookie: Preference = preferenceStore.getString(Preference.Companion.privateKey("eh_sessionCookie"), "") + val exhHathPerksCookies: Preference = preferenceStore.getString(Preference.Companion.privateKey("eh_hathPerksCookie"), "") - fun exhShowSyncIntro() = preferenceStore.getBoolean("eh_show_sync_intro", true) + val exhShowSyncIntro: Preference = preferenceStore.getBoolean("eh_show_sync_intro", true) - fun exhReadOnlySync() = preferenceStore.getBoolean("eh_sync_read_only", false) + val exhReadOnlySync: Preference = preferenceStore.getBoolean("eh_sync_read_only", false) - fun exhLenientSync() = preferenceStore.getBoolean("eh_lenient_sync", false) + val exhLenientSync: Preference = preferenceStore.getBoolean("eh_lenient_sync", false) - fun exhShowSettingsUploadWarning() = preferenceStore.getBoolean("eh_showSettingsUploadWarning2", true) + val exhShowSettingsUploadWarning: Preference = preferenceStore.getBoolean("eh_showSettingsUploadWarning2", true) - fun logLevel() = preferenceStore.getInt("eh_log_level", 0) + val logLevel: Preference = preferenceStore.getInt("eh_log_level", 0) - fun exhAutoUpdateFrequency() = preferenceStore.getInt("eh_auto_update_frequency", 1) + val exhAutoUpdateFrequency: Preference = preferenceStore.getInt("eh_auto_update_frequency", 1) - fun exhAutoUpdateRequirements() = preferenceStore.getStringSet("eh_auto_update_restrictions", emptySet()) + val exhAutoUpdateRequirements: Preference> = preferenceStore.getStringSet("eh_auto_update_restrictions", emptySet()) - fun exhAutoUpdateStats() = preferenceStore.getString(Preference.Companion.appStateKey("eh_auto_update_stats"), "") + val exhAutoUpdateStats: Preference = preferenceStore.getString(Preference.Companion.appStateKey("eh_auto_update_stats"), "") - fun exhWatchedListDefaultState() = preferenceStore.getBoolean("eh_watched_list_default_state", false) + val exhWatchedListDefaultState: Preference = preferenceStore.getBoolean("eh_watched_list_default_state", false) - fun exhSettingsLanguages() = preferenceStore.getString( + val exhSettingsLanguages: Preference = 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 = 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 = preferenceStore.getBoolean("enhanced_e_hentai_view", true) } diff --git a/domain/src/main/java/mihon/domain/chapter/interactor/FilterChaptersForDownload.kt b/domain/src/main/java/mihon/domain/chapter/interactor/FilterChaptersForDownload.kt index 1fe002ff1..5a9b157a0 100644 --- a/domain/src/main/java/mihon/domain/chapter/interactor/FilterChaptersForDownload.kt +++ b/domain/src/main/java/mihon/domain/chapter/interactor/FilterChaptersForDownload.kt @@ -32,13 +32,13 @@ class FilterChaptersForDownload( suspend fun await(manga: Manga, newChapters: List): List { 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 diff --git a/domain/src/main/java/tachiyomi/domain/backup/service/BackupPreferences.kt b/domain/src/main/java/tachiyomi/domain/backup/service/BackupPreferences.kt index 41f29392d..954808c2e 100644 --- a/domain/src/main/java/tachiyomi/domain/backup/service/BackupPreferences.kt +++ b/domain/src/main/java/tachiyomi/domain/backup/service/BackupPreferences.kt @@ -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 = preferenceStore.getInt("backup_interval", 12) - fun lastAutoBackupTimestamp() = preferenceStore.getLong(Preference.appStateKey("last_auto_backup_timestamp"), 0L) + val lastAutoBackupTimestamp: Preference = preferenceStore.getLong( + Preference.appStateKey("last_auto_backup_timestamp"), + 0L, + ) } diff --git a/domain/src/main/java/tachiyomi/domain/category/interactor/CreateCategoryWithName.kt b/domain/src/main/java/tachiyomi/domain/category/interactor/CreateCategoryWithName.kt index 535f7103e..125b7153d 100644 --- a/domain/src/main/java/tachiyomi/domain/category/interactor/CreateCategoryWithName.kt +++ b/domain/src/main/java/tachiyomi/domain/category/interactor/CreateCategoryWithName.kt @@ -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 } diff --git a/domain/src/main/java/tachiyomi/domain/category/interactor/DeleteCategory.kt b/domain/src/main/java/tachiyomi/domain/category/interactor/DeleteCategory.kt index 279b1c9af..020f02b2f 100644 --- a/domain/src/main/java/tachiyomi/domain/category/interactor/DeleteCategory.kt +++ b/domain/src/main/java/tachiyomi/domain/category/interactor/DeleteCategory.kt @@ -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 -> diff --git a/domain/src/main/java/tachiyomi/domain/category/interactor/ResetCategoryFlags.kt b/domain/src/main/java/tachiyomi/domain/category/interactor/ResetCategoryFlags.kt index 4032206c3..4bf262cc2 100644 --- a/domain/src/main/java/tachiyomi/domain/category/interactor/ResetCategoryFlags.kt +++ b/domain/src/main/java/tachiyomi/domain/category/interactor/ResetCategoryFlags.kt @@ -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) } } diff --git a/domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayMode.kt b/domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayMode.kt index 32e23148f..af95abf3b 100644 --- a/domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayMode.kt +++ b/domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayMode.kt @@ -8,6 +8,6 @@ class SetDisplayMode( ) { fun await(display: LibraryDisplayMode) { - preferences.displayMode().set(display) + preferences.displayMode.set(display) } } diff --git a/domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt b/domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt index 70fc057ec..a97ad37d5 100644 --- a/domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt +++ b/domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt @@ -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) } } diff --git a/domain/src/main/java/tachiyomi/domain/chapter/interactor/SetMangaDefaultChapterFlags.kt b/domain/src/main/java/tachiyomi/domain/chapter/interactor/SetMangaDefaultChapterFlags.kt index 4c968b39a..47ea4329e 100644 --- a/domain/src/main/java/tachiyomi/domain/chapter/interactor/SetMangaDefaultChapterFlags.kt +++ b/domain/src/main/java/tachiyomi/domain/chapter/interactor/SetMangaDefaultChapterFlags.kt @@ -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(), ) } } diff --git a/domain/src/main/java/tachiyomi/domain/download/service/DownloadPreferences.kt b/domain/src/main/java/tachiyomi/domain/download/service/DownloadPreferences.kt index 97801ef34..f592c368e 100644 --- a/domain/src/main/java/tachiyomi/domain/download/service/DownloadPreferences.kt +++ b/domain/src/main/java/tachiyomi/domain/download/service/DownloadPreferences.kt @@ -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 = preferenceStore.getBoolean( "pref_download_only_over_wifi_key", true, ) - fun saveChaptersAsCBZ() = preferenceStore.getBoolean("save_chapter_as_cbz", true) + val saveChaptersAsCBZ: Preference = preferenceStore.getBoolean("save_chapter_as_cbz", true) - fun splitTallImages() = preferenceStore.getBoolean("split_tall_images", true) + val splitTallImages: Preference = preferenceStore.getBoolean("split_tall_images", true) - fun autoDownloadWhileReading() = preferenceStore.getInt("auto_download_while_reading", 0) + val autoDownloadWhileReading: Preference = preferenceStore.getInt("auto_download_while_reading", 0) - fun removeAfterReadSlots() = preferenceStore.getInt("remove_after_read_slots", -1) + val removeAfterReadSlots: Preference = preferenceStore.getInt("remove_after_read_slots", -1) - fun removeAfterMarkedAsRead() = preferenceStore.getBoolean( + val removeAfterMarkedAsRead: Preference = preferenceStore.getBoolean( "pref_remove_after_marked_as_read_key", false, ) - fun removeBookmarkedChapters() = preferenceStore.getBoolean("pref_remove_bookmarked", false) + val removeBookmarkedChapters: Preference = preferenceStore.getBoolean("pref_remove_bookmarked", false) - fun removeExcludeCategories() = preferenceStore.getStringSet(REMOVE_EXCLUDE_CATEGORIES_PREF_KEY, emptySet()) + val removeExcludeCategories: Preference> = preferenceStore.getStringSet( + REMOVE_EXCLUDE_CATEGORIES_PREF_KEY, + emptySet(), + ) - fun downloadNewChapters() = preferenceStore.getBoolean("download_new", false) + val downloadNewChapters: Preference = preferenceStore.getBoolean("download_new", false) - fun downloadNewChapterCategories() = preferenceStore.getStringSet(DOWNLOAD_NEW_CATEGORIES_PREF_KEY, emptySet()) + val downloadNewChapterCategories: Preference> = preferenceStore.getStringSet( + DOWNLOAD_NEW_CATEGORIES_PREF_KEY, + emptySet(), + ) - fun downloadNewChapterCategoriesExclude() = - preferenceStore.getStringSet(DOWNLOAD_NEW_CATEGORIES_EXCLUDE_PREF_KEY, emptySet()) + val downloadNewChapterCategoriesExclude: Preference> = preferenceStore.getStringSet( + DOWNLOAD_NEW_CATEGORIES_EXCLUDE_PREF_KEY, + emptySet(), + ) - fun downloadNewUnreadChaptersOnly() = preferenceStore.getBoolean("download_new_unread_chapters_only", false) + val downloadNewUnreadChaptersOnly: Preference = preferenceStore.getBoolean( + "download_new_unread_chapters_only", + false, + ) - fun parallelSourceLimit() = preferenceStore.getInt("download_parallel_source_limit", 5) + val parallelSourceLimit: Preference = preferenceStore.getInt("download_parallel_source_limit", 5) - fun parallelPageLimit() = preferenceStore.getInt("download_parallel_page_limit", 5) + val parallelPageLimit: Preference = preferenceStore.getInt("download_parallel_page_limit", 5) - fun includeChapterUrlHash() = preferenceStore.getBoolean("download_include_chapter_url_hash", true) + // SY --> + val includeChapterUrlHash: Preference = preferenceStore.getBoolean("download_include_chapter_url_hash", true) + // SY <-- companion object { private const val REMOVE_EXCLUDE_CATEGORIES_PREF_KEY = "remove_exclude_categories" diff --git a/domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt b/domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt index a66bb65e4..d2b32bb85 100644 --- a/domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt +++ b/domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt @@ -14,36 +14,39 @@ class LibraryPreferences( private val preferenceStore: PreferenceStore, ) { - fun displayMode() = preferenceStore.getObjectFromString( + val displayMode: Preference = preferenceStore.getObjectFromString( "pref_display_mode_library", LibraryDisplayMode.default, LibraryDisplayMode.Serializer::serialize, LibraryDisplayMode.Serializer::deserialize, ) - fun sortingMode() = preferenceStore.getObjectFromString( + val sortingMode: Preference = 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 = preferenceStore.getInt("library_random_sort_seed", 0) - fun portraitColumns() = preferenceStore.getInt("pref_library_columns_portrait_key", 0) + val portraitColumns: Preference = preferenceStore.getInt("pref_library_columns_portrait_key", 0) - fun landscapeColumns() = preferenceStore.getInt("pref_library_columns_landscape_key", 0) + val landscapeColumns: Preference = 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 = preferenceStore.getLong( + Preference.appStateKey("library_update_last_timestamp"), + 0L, + ) + val autoUpdateInterval: Preference = preferenceStore.getInt("pref_library_update_interval_key", 0) - fun autoUpdateDeviceRestrictions() = preferenceStore.getStringSet( + val autoUpdateDeviceRestrictions: Preference> = preferenceStore.getStringSet( "library_update_restriction", setOf( DEVICE_ONLY_ON_WIFI, ), ) - fun autoUpdateMangaRestrictions() = preferenceStore.getStringSet( + val autoUpdateMangaRestrictions: Preference> = 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 = preferenceStore.getBoolean("auto_update_metadata", false) - fun showContinueReadingButton() = preferenceStore.getBoolean( + val showContinueReadingButton: Preference = preferenceStore.getBoolean( "display_continue_reading_button", false, ) - fun markDuplicateReadChapterAsRead() = preferenceStore.getStringSet("mark_duplicate_read_chapter_read", emptySet()) + val markDuplicateReadChapterAsRead: Preference> = preferenceStore.getStringSet( + "mark_duplicate_read_chapter_read", + emptySet(), + ) // region Filter - fun filterDownloaded() = preferenceStore.getEnum( + val filterDownloaded: Preference = preferenceStore.getEnum( "pref_filter_library_downloaded_v2", TriState.DISABLED, ) - fun filterUnread() = preferenceStore.getEnum("pref_filter_library_unread_v2", TriState.DISABLED) + val filterUnread: Preference = preferenceStore.getEnum("pref_filter_library_unread_v2", TriState.DISABLED) - fun filterStarted() = preferenceStore.getEnum( + val filterStarted: Preference = preferenceStore.getEnum( "pref_filter_library_started_v2", TriState.DISABLED, ) - fun filterBookmarked() = preferenceStore.getEnum( + val filterBookmarked: Preference = preferenceStore.getEnum( "pref_filter_library_bookmarked_v2", TriState.DISABLED, ) - fun filterCompleted() = preferenceStore.getEnum( + val filterCompleted: Preference = preferenceStore.getEnum( "pref_filter_library_completed_v2", TriState.DISABLED, ) - fun filterIntervalCustom() = preferenceStore.getEnum( + val filterIntervalCustom: Preference = preferenceStore.getEnum( "pref_filter_library_interval_custom", TriState.DISABLED, ) // SY --> - fun filterLewd() = preferenceStore.getEnum( + val filterLewd: Preference = preferenceStore.getEnum( "pref_filter_library_lewd_v2", TriState.DISABLED, ) // SY <-- - fun filterTracking(id: Int) = preferenceStore.getEnum( + fun filterTracking(id: Int): Preference = 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 = preferenceStore.getBoolean("display_download_badge", false) - fun unreadBadge() = preferenceStore.getBoolean("display_unread_badge", true) + val unreadBadge: Preference = preferenceStore.getBoolean("display_unread_badge", true) - fun localBadge() = preferenceStore.getBoolean("display_local_badge", true) + val localBadge: Preference = preferenceStore.getBoolean("display_local_badge", true) - fun languageBadge() = preferenceStore.getBoolean("display_language_badge", false) + val languageBadge: Preference = 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 = preferenceStore.getBoolean("library_show_updates_count", true) + val newUpdatesCount: Preference = preferenceStore.getInt( + Preference.appStateKey("library_unseen_updates_count"), + 0, + ) // endregion // region Category - fun defaultCategory() = preferenceStore.getInt(DEFAULT_CATEGORY_PREF_KEY, -1) + val defaultCategory: Preference = preferenceStore.getInt(DEFAULT_CATEGORY_PREF_KEY, -1) - fun lastUsedCategory() = preferenceStore.getInt(Preference.appStateKey("last_used_category"), 0) + val lastUsedCategory: Preference = preferenceStore.getInt(Preference.appStateKey("last_used_category"), 0) - fun categoryTabs() = preferenceStore.getBoolean("display_category_tabs", true) + val categoryTabs: Preference = preferenceStore.getBoolean("display_category_tabs", true) - fun categoryNumberOfItems() = preferenceStore.getBoolean("display_number_of_items", false) + val categoryNumberOfItems: Preference = preferenceStore.getBoolean("display_number_of_items", false) - fun categorizedDisplaySettings() = preferenceStore.getBoolean("categorized_display", false) + val categorizedDisplaySettings: Preference = preferenceStore.getBoolean("categorized_display", false) - fun updateCategories() = preferenceStore.getStringSet(LIBRARY_UPDATE_CATEGORIES_PREF_KEY, emptySet()) + val updateCategories: Preference> = preferenceStore.getStringSet( + LIBRARY_UPDATE_CATEGORIES_PREF_KEY, + emptySet(), + ) - fun updateCategoriesExclude() = preferenceStore.getStringSet(LIBRARY_UPDATE_CATEGORIES_EXCLUDE_PREF_KEY, emptySet()) + val updateCategoriesExclude: Preference> = preferenceStore.getStringSet( + LIBRARY_UPDATE_CATEGORIES_EXCLUDE_PREF_KEY, + emptySet(), + ) // endregion // region Chapter - fun filterChapterByRead() = preferenceStore.getLong( + val filterChapterByRead: Preference = preferenceStore.getLong( "default_chapter_filter_by_read", Manga.SHOW_ALL, ) - fun filterChapterByDownloaded() = preferenceStore.getLong( + val filterChapterByDownloaded: Preference = preferenceStore.getLong( "default_chapter_filter_by_downloaded", Manga.SHOW_ALL, ) - fun filterChapterByBookmarked() = preferenceStore.getLong( + val filterChapterByBookmarked: Preference = preferenceStore.getLong( "default_chapter_filter_by_bookmarked", Manga.SHOW_ALL, ) // and upload date - fun sortChapterBySourceOrNumber() = preferenceStore.getLong( + val sortChapterBySourceOrNumber: Preference = preferenceStore.getLong( "default_chapter_sort_by_source_or_number", Manga.CHAPTER_SORTING_SOURCE, ) - fun displayChapterByNameOrNumber() = preferenceStore.getLong( + val displayChapterByNameOrNumber: Preference = preferenceStore.getLong( "default_chapter_display_by_name_or_number", Manga.CHAPTER_DISPLAY_NAME, ) - fun sortChapterByAscendingOrDescending() = preferenceStore.getLong( + val sortChapterByAscendingOrDescending: Preference = 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 = preferenceStore.getBoolean("auto_clear_chapter_cache", false) // endregion // region Swipe Actions - fun swipeToStartAction() = preferenceStore.getEnum( + val swipeToStartAction: Preference = preferenceStore.getEnum( "pref_chapter_swipe_end_action", ChapterSwipeAction.ToggleBookmark, ) - fun swipeToEndAction() = preferenceStore.getEnum( + val swipeToEndAction: Preference = preferenceStore.getEnum( "pref_chapter_swipe_start_action", ChapterSwipeAction.ToggleRead, ) - fun updateMangaTitles() = preferenceStore.getBoolean("pref_update_library_manga_titles", false) + val updateMangaTitles: Preference = preferenceStore.getBoolean("pref_update_library_manga_titles", false) - fun disallowNonAsciiFilenames() = preferenceStore.getBoolean("disallow_non_ascii_filenames", false) + val disallowNonAsciiFilenames: Preference = 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> = preferenceStore.getStringSet("sort_tags_for_library", mutableSetOf()) - fun groupLibraryUpdateType() = preferenceStore.getEnum("group_library_update_type", GroupLibraryMode.GLOBAL) + val groupLibraryUpdateType: Preference = preferenceStore.getEnum("group_library_update_type", GroupLibraryMode.GLOBAL) - fun groupLibraryBy() = preferenceStore.getInt("group_library_by", LibraryGroup.BY_DEFAULT) + val groupLibraryBy: Preference = preferenceStore.getInt("group_library_by", LibraryGroup.BY_DEFAULT) // SY <-- diff --git a/domain/src/main/java/tachiyomi/domain/storage/service/StorageManager.kt b/domain/src/main/java/tachiyomi/domain/storage/service/StorageManager.kt index 4c4b60549..60674a751 100644 --- a/domain/src/main/java/tachiyomi/domain/storage/service/StorageManager.kt +++ b/domain/src/main/java/tachiyomi/domain/storage/service/StorageManager.kt @@ -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 = Channel(Channel.UNLIMITED) val changes = _changes.receiveAsFlow() .shareIn(scope, SharingStarted.Lazily, 1) init { - storagePreferences.baseStorageDirectory().changes() + storagePreferences.baseStorageDirectory.changes() .drop(1) .distinctUntilChanged() .onEach { uri -> diff --git a/domain/src/main/java/tachiyomi/domain/storage/service/StoragePreferences.kt b/domain/src/main/java/tachiyomi/domain/storage/service/StoragePreferences.kt index f29949cff..159134767 100644 --- a/domain/src/main/java/tachiyomi/domain/storage/service/StoragePreferences.kt +++ b/domain/src/main/java/tachiyomi/domain/storage/service/StoragePreferences.kt @@ -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 = preferenceStore.getString( + Preference.appStateKey("storage_dir"), + folderProvider.path(), + ) } diff --git a/domain/src/main/java/tachiyomi/domain/updates/service/UpdatesPreferences.kt b/domain/src/main/java/tachiyomi/domain/updates/service/UpdatesPreferences.kt index fa86de29b..3d2989126 100644 --- a/domain/src/main/java/tachiyomi/domain/updates/service/UpdatesPreferences.kt +++ b/domain/src/main/java/tachiyomi/domain/updates/service/UpdatesPreferences.kt @@ -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 = preferenceStore.getEnum( "pref_filter_updates_downloaded", TriState.DISABLED, ) - fun filterUnread() = preferenceStore.getEnum( + val filterUnread: Preference = preferenceStore.getEnum( "pref_filter_updates_unread", TriState.DISABLED, ) - fun filterStarted() = preferenceStore.getEnum( + val filterStarted: Preference = preferenceStore.getEnum( "pref_filter_updates_started", TriState.DISABLED, ) - fun filterBookmarked() = preferenceStore.getEnum( + val filterBookmarked: Preference = preferenceStore.getEnum( "pref_filter_updates_bookmarked", TriState.DISABLED, ) - fun filterExcludedScanlators() = preferenceStore.getBoolean( + val filterExcludedScanlators: Preference = preferenceStore.getBoolean( "pref_filter_updates_hide_excluded_scanlators", false, ) diff --git a/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt b/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt index a24b98546..c6bb40f0d 100644 --- a/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt +++ b/presentation-widget/src/main/java/tachiyomi/presentation/widget/BaseUpdatesGridGlanceWidget.kt @@ -65,7 +65,7 @@ abstract class BaseUpdatesGridGlanceWidget( abstract val bottomPadding: Dp override suspend fun provideGlance(context: Context, id: GlanceId) { - val locked = preferences.useAuthenticator().get() + val locked = preferences.useAuthenticator.get() val containerModifier = GlanceModifier .fillMaxSize() .background(background) diff --git a/presentation-widget/src/main/java/tachiyomi/presentation/widget/WidgetManager.kt b/presentation-widget/src/main/java/tachiyomi/presentation/widget/WidgetManager.kt index f54ab702c..0c52d6c84 100644 --- a/presentation-widget/src/main/java/tachiyomi/presentation/widget/WidgetManager.kt +++ b/presentation-widget/src/main/java/tachiyomi/presentation/widget/WidgetManager.kt @@ -22,7 +22,7 @@ class WidgetManager( fun Context.init(scope: LifecycleCoroutineScope) { combine( getUpdates.subscribe(read = false, after = BaseUpdatesGridGlanceWidget.DateLimit.toEpochMilli()), - securityPreferences.useAuthenticator().changes(), + securityPreferences.useAuthenticator.changes(), transform = { a, b -> a to b }, ) .distinctUntilChanged { old, new -> diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt index 4b708a49b..adc452d43 100755 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt +++ b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt @@ -494,7 +494,7 @@ abstract class HttpSource : CatalogueSource { // EXH --> private var delegate: DelegatedHttpSource? = null - get() = if (Injekt.get().delegateSources().get()) { + get() = if (Injekt.get().delegateSources.get()) { field } else { null diff --git a/source-api/src/commonMain/kotlin/exh/metadata/metadata/EHentaiSearchMetadata.kt b/source-api/src/commonMain/kotlin/exh/metadata/metadata/EHentaiSearchMetadata.kt index 82aa9fa2c..e41e006b8 100644 --- a/source-api/src/commonMain/kotlin/exh/metadata/metadata/EHentaiSearchMetadata.kt +++ b/source-api/src/commonMain/kotlin/exh/metadata/metadata/EHentaiSearchMetadata.kt @@ -58,7 +58,7 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() { // No title bug? val title = altTitle - ?.takeIf { Injekt.get().useJapaneseTitle().get() } // todo + ?.takeIf { Injekt.get().useJapaneseTitle.get() } // todo ?: title // Set artist (if we can find one) diff --git a/source-api/src/commonMain/kotlin/exh/source/EnhancedHttpSource.kt b/source-api/src/commonMain/kotlin/exh/source/EnhancedHttpSource.kt index 91fa7c72d..e6ee6d030 100644 --- a/source-api/src/commonMain/kotlin/exh/source/EnhancedHttpSource.kt +++ b/source-api/src/commonMain/kotlin/exh/source/EnhancedHttpSource.kt @@ -288,7 +288,7 @@ class EnhancedHttpSource( override fun getFilterList() = source().getFilterList() fun source(): HttpSource { - return if (Injekt.get().delegateSources().get()) { + return if (Injekt.get().delegateSources.get()) { enhancedSource } else { originalSource