From dd808a424029d762199a37557ad0d76ea809fe64 Mon Sep 17 00:00:00 2001 From: Ahmad Ansori Palembani Date: Sat, 17 Aug 2024 20:10:16 +0700 Subject: [PATCH] feat: Toggle for chapter swipe action --- .../tachiyomi/ui/manga/chapter/ChapterItem.kt | 5 ++++- .../controllers/SettingsLibraryController.kt | 21 +++++++++++++------ .../java/yokai/domain/ui/UiPreferences.kt | 2 ++ .../moko-resources/base/strings.xml | 1 + 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt index 71e9a310c3..810268e05b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterItem.kt @@ -10,6 +10,9 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.manga.MangaDetailsAdapter +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get +import yokai.domain.ui.UiPreferences class ChapterItem(chapter: Chapter, val manga: Manga) : BaseChapterItem>(chapter) { @@ -25,7 +28,7 @@ class ChapterItem(chapter: Chapter, val manga: Manga) : } override fun isSwipeable(): Boolean { - return !isLocked + return !isLocked && Injekt.get().enableChapterSwipeAction().get() } override fun createViewHolder(view: View, adapter: FlexibleAdapter>): ChapterHolder { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsLibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsLibraryController.kt index 663c4e8b8d..8e8c4c54b6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsLibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsLibraryController.kt @@ -1,10 +1,6 @@ package eu.kanade.tachiyomi.ui.setting.controllers import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.R -import yokai.i18n.MR -import yokai.util.lang.getString -import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.library.LibraryUpdateJob @@ -29,9 +25,7 @@ import eu.kanade.tachiyomi.ui.setting.onChange import eu.kanade.tachiyomi.ui.setting.onClick import eu.kanade.tachiyomi.ui.setting.preference import eu.kanade.tachiyomi.ui.setting.preferenceCategory -import eu.kanade.tachiyomi.ui.setting.summaryMRes as summaryRes import eu.kanade.tachiyomi.ui.setting.switchPreference -import eu.kanade.tachiyomi.ui.setting.titleMRes as titleRes import eu.kanade.tachiyomi.ui.setting.triStateListPreference import eu.kanade.tachiyomi.util.system.launchIO import eu.kanade.tachiyomi.util.system.launchUI @@ -40,12 +34,18 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy import yokai.domain.manga.interactor.GetLibraryManga +import yokai.domain.ui.UiPreferences +import yokai.i18n.MR +import yokai.util.lang.getString import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys +import eu.kanade.tachiyomi.ui.setting.summaryMRes as summaryRes +import eu.kanade.tachiyomi.ui.setting.titleMRes as titleRes class SettingsLibraryController : SettingsLegacyController() { private val db: DatabaseHelper by injectLazy() private val getLibraryManga: GetLibraryManga by injectLazy() + private val uiPreferences: UiPreferences by injectLazy() override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply { titleRes = MR.strings.library @@ -207,5 +207,14 @@ class SettingsLibraryController : SettingsLegacyController() { defaultValue = true } } + + preferenceCategory { + titleRes = MR.strings.chapters + + switchPreference { + bindTo(uiPreferences.enableChapterSwipeAction()) + titleRes = MR.strings.enable_chapter_swipe_action + } + } } } diff --git a/app/src/main/java/yokai/domain/ui/UiPreferences.kt b/app/src/main/java/yokai/domain/ui/UiPreferences.kt index 64abb74567..3d35eee75a 100644 --- a/app/src/main/java/yokai/domain/ui/UiPreferences.kt +++ b/app/src/main/java/yokai/domain/ui/UiPreferences.kt @@ -9,4 +9,6 @@ class UiPreferences(private val preferenceStore: PreferenceStore) { fun outlineOnCovers() = preferenceStore.getBoolean(PreferenceKeys.outlineOnCovers, true) fun uniformGrid() = preferenceStore.getBoolean(PreferenceKeys.uniformGrid, true) + + fun enableChapterSwipeAction() = preferenceStore.getBoolean("enable_chapter_swipe_action", true) } diff --git a/i18n/src/commonMain/moko-resources/base/strings.xml b/i18n/src/commonMain/moko-resources/base/strings.xml index e0f0698e8b..65a3262b5b 100644 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -237,6 +237,7 @@ Certain buttons can be found in other places if disabled here Search suggestions Search tips will show up periodically. Long press the suggestion to search it. + Enable chapter swipe action Recents