diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsBrowseController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsBrowseController.kt index 56f4d08b87..7abbb51ba3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsBrowseController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/controllers/SettingsBrowseController.kt @@ -8,6 +8,7 @@ import androidx.preference.PreferenceScreen import androidx.preference.SwitchPreferenceCompat import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R +import yokai.domain.ui.UiPreferences import yokai.i18n.MR import yokai.util.lang.getString import dev.icerock.moko.resources.compose.stringResource @@ -45,6 +46,8 @@ class SettingsBrowseController : SettingsLegacyController() { val sourceManager: SourceManager by injectLazy() var updatedExtNotifPref: SwitchPreferenceCompat? = null + private val uiPreferences: UiPreferences by injectLazy() + override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply { titleRes = MR.strings.browse @@ -198,6 +201,15 @@ class SettingsBrowseController : SettingsLegacyController() { infoPreference(MR.strings.you_can_migrate_in_library) } + + preferenceCategory { + titleRes = MR.strings.sources + + switchPreference { + bindTo(uiPreferences.enableSourceSwipeAction()) + titleRes = MR.strings.enable_source_swipe_action + } + } preferenceCategory { titleRes = MR.strings.nsfw_sources diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/SourceItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/SourceItem.kt index 14d1d58722..fbf6cd8ca3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/SourceItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/SourceItem.kt @@ -11,6 +11,9 @@ import yokai.util.lang.getString import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.LocalSource +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get +import yokai.domain.ui.UiPreferences /** * Item that contains source information. @@ -29,7 +32,7 @@ class SourceItem(val source: CatalogueSource, header: LangItem? = null, val isPi } override fun isSwipeable(): Boolean { - return source.id != LocalSource.ID && header != null && header.code != SourcePresenter.LAST_USED_KEY + return Injekt.get().enableSourceSwipeAction().get() && source.id != LocalSource.ID && header != null && header.code != SourcePresenter.LAST_USED_KEY } /** diff --git a/app/src/main/java/yokai/domain/ui/UiPreferences.kt b/app/src/main/java/yokai/domain/ui/UiPreferences.kt index 3d35eee75a..1e73ad2eea 100644 --- a/app/src/main/java/yokai/domain/ui/UiPreferences.kt +++ b/app/src/main/java/yokai/domain/ui/UiPreferences.kt @@ -11,4 +11,6 @@ class UiPreferences(private val preferenceStore: PreferenceStore) { fun uniformGrid() = preferenceStore.getBoolean(PreferenceKeys.uniformGrid, true) fun enableChapterSwipeAction() = preferenceStore.getBoolean("enable_chapter_swipe_action", true) + + fun enableSourceSwipeAction() = preferenceStore.getBoolean("enable_source_swipe_action", true) } diff --git a/i18n/src/commonMain/moko-resources/base/strings.xml b/i18n/src/commonMain/moko-resources/base/strings.xml index 32a846286a..ef4ade4837 100644 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -884,6 +884,7 @@ You can also migrate by selecting entries in your library Source migration guide + Enable source swipe action NSFW (18+) sources Show in sources and extensions lists This does not prevent unofficial or potentially incorrectly flagged extensions from surfacing NSFW (18+) content within the app.