feat: Toggle for chapter swipe action

This commit is contained in:
Ahmad Ansori Palembani 2024-08-17 20:10:16 +07:00
parent 8827e4433c
commit dd808a4240
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
4 changed files with 22 additions and 7 deletions

View file

@ -10,6 +10,9 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.domain.manga.models.Manga
import eu.kanade.tachiyomi.ui.manga.MangaDetailsAdapter 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) : class ChapterItem(chapter: Chapter, val manga: Manga) :
BaseChapterItem<ChapterHolder, AbstractHeaderItem<FlexibleViewHolder>>(chapter) { BaseChapterItem<ChapterHolder, AbstractHeaderItem<FlexibleViewHolder>>(chapter) {
@ -25,7 +28,7 @@ class ChapterItem(chapter: Chapter, val manga: Manga) :
} }
override fun isSwipeable(): Boolean { override fun isSwipeable(): Boolean {
return !isLocked return !isLocked && Injekt.get<UiPreferences>().enableChapterSwipeAction().get()
} }
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): ChapterHolder { override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): ChapterHolder {

View file

@ -1,10 +1,6 @@
package eu.kanade.tachiyomi.ui.setting.controllers package eu.kanade.tachiyomi.ui.setting.controllers
import androidx.preference.PreferenceScreen 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.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Category import eu.kanade.tachiyomi.data.database.models.Category
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob 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.onClick
import eu.kanade.tachiyomi.ui.setting.preference import eu.kanade.tachiyomi.ui.setting.preference
import eu.kanade.tachiyomi.ui.setting.preferenceCategory 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.switchPreference
import eu.kanade.tachiyomi.ui.setting.titleMRes as titleRes
import eu.kanade.tachiyomi.ui.setting.triStateListPreference import eu.kanade.tachiyomi.ui.setting.triStateListPreference
import eu.kanade.tachiyomi.util.system.launchIO import eu.kanade.tachiyomi.util.system.launchIO
import eu.kanade.tachiyomi.util.system.launchUI 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.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import yokai.domain.manga.interactor.GetLibraryManga 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.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() { class SettingsLibraryController : SettingsLegacyController() {
private val db: DatabaseHelper by injectLazy() private val db: DatabaseHelper by injectLazy()
private val getLibraryManga: GetLibraryManga by injectLazy() private val getLibraryManga: GetLibraryManga by injectLazy()
private val uiPreferences: UiPreferences by injectLazy()
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply { override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
titleRes = MR.strings.library titleRes = MR.strings.library
@ -207,5 +207,14 @@ class SettingsLibraryController : SettingsLegacyController() {
defaultValue = true defaultValue = true
} }
} }
preferenceCategory {
titleRes = MR.strings.chapters
switchPreference {
bindTo(uiPreferences.enableChapterSwipeAction())
titleRes = MR.strings.enable_chapter_swipe_action
}
}
} }
} }

View file

@ -9,4 +9,6 @@ class UiPreferences(private val preferenceStore: PreferenceStore) {
fun outlineOnCovers() = preferenceStore.getBoolean(PreferenceKeys.outlineOnCovers, true) fun outlineOnCovers() = preferenceStore.getBoolean(PreferenceKeys.outlineOnCovers, true)
fun uniformGrid() = preferenceStore.getBoolean(PreferenceKeys.uniformGrid, true) fun uniformGrid() = preferenceStore.getBoolean(PreferenceKeys.uniformGrid, true)
fun enableChapterSwipeAction() = preferenceStore.getBoolean("enable_chapter_swipe_action", true)
} }

View file

@ -237,6 +237,7 @@
<string name="certain_buttons_can_be_found">Certain buttons can be found in other places if disabled here</string> <string name="certain_buttons_can_be_found">Certain buttons can be found in other places if disabled here</string>
<string name="search_suggestions">Search suggestions</string> <string name="search_suggestions">Search suggestions</string>
<string name="search_tips_show_periodically">Search tips will show up periodically. Long press the suggestion to search it.</string> <string name="search_tips_show_periodically">Search tips will show up periodically. Long press the suggestion to search it.</string>
<string name="enable_chapter_swipe_action">Enable chapter swipe action</string>
<!-- Recents --> <!-- Recents -->
<string name="recents">Recents</string> <string name="recents">Recents</string>