diff --git a/app/src/main/java/eu/kanade/domain/SYDomainModule.kt b/app/src/main/java/eu/kanade/domain/SYDomainModule.kt index 301c2ab1a..23796671d 100644 --- a/app/src/main/java/eu/kanade/domain/SYDomainModule.kt +++ b/app/src/main/java/eu/kanade/domain/SYDomainModule.kt @@ -63,7 +63,6 @@ import eu.kanade.domain.source.interactor.InsertSavedSearch import eu.kanade.domain.source.interactor.RenameSourceCategory import eu.kanade.domain.source.interactor.SetSourceCategories import eu.kanade.domain.source.interactor.ToggleExcludeFromDataSaver -import eu.kanade.domain.source.interactor.ToggleSources import eu.kanade.domain.source.repository.FeedSavedSearchRepository import eu.kanade.domain.source.repository.SavedSearchRepository import eu.kanade.tachiyomi.source.online.MetadataSource @@ -80,7 +79,6 @@ class SYDomainModule : InjektModule { addFactory { GetShowLatest(get()) } addFactory { ToggleExcludeFromDataSaver(get()) } addFactory { SetSourceCategories(get()) } - addFactory { ToggleSources(get()) } addFactory { SetMangaFilteredScanlators(get()) } addFactory { GetAllManga(get()) } addFactory { GetMangaBySource(get()) } 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 bb602da5c..e69e76dab 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 @@ -18,6 +18,13 @@ class ToggleSource( } } + fun await(sourceIds: List, enable: Boolean) { + val transformedSourceIds = sourceIds.map { it.toString() } + 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() } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSources.kt b/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSources.kt deleted file mode 100644 index 8a95e499b..000000000 --- a/app/src/main/java/eu/kanade/domain/source/interactor/ToggleSources.kt +++ /dev/null @@ -1,20 +0,0 @@ -package eu.kanade.domain.source.interactor - -import eu.kanade.domain.source.model.Source -import eu.kanade.domain.source.service.SourcePreferences -import eu.kanade.tachiyomi.core.preference.getAndSet - -class ToggleSources( - private val preferences: SourcePreferences, -) { - - fun await(isEnable: Boolean, sources: List) { - preferences.disabledSources().getAndSet { disabledSources -> - if (isEnable) { - disabledSources - sources.map { it.id.toString() }.toSet() - } else { - disabledSources + sources.map { it.id.toString() } - } - } - } -} diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt index 3e972394e..1ddc124c5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt @@ -118,7 +118,9 @@ class ExtensionDetailsPresenter( } fun toggleSources(enable: Boolean) { - extension?.sources?.forEach { toggleSource.await(it.id, enable) } + extension?.sources + ?.map { it.id } + ?.let { toggleSource.await(it, enable) } } private fun createUrl(url: String, pkgName: String, pkgFactory: String?, path: String = ""): String { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterController.kt index f11d9182c..02c9760a1 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterController.kt @@ -21,8 +21,8 @@ class SourceFilterController : FullComposeController() { presenter.toggleSource(source) }, // SY --> - onClickSources = { isEnable, sources -> - presenter.toggleSources(isEnable, sources) + onClickSources = { enable, sources -> + presenter.toggleSources(enable, sources) }, // SY <-- ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterPresenter.kt index a13bab6f7..d62560d8a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterPresenter.kt @@ -4,7 +4,6 @@ import android.os.Bundle import eu.kanade.domain.source.interactor.GetLanguagesWithSources import eu.kanade.domain.source.interactor.ToggleLanguage import eu.kanade.domain.source.interactor.ToggleSource -import eu.kanade.domain.source.interactor.ToggleSources import eu.kanade.domain.source.model.Source import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.browse.SourcesFilterState @@ -26,9 +25,6 @@ class SourcesFilterPresenter( private val toggleSource: ToggleSource = Injekt.get(), private val toggleLanguage: ToggleLanguage = Injekt.get(), private val preferences: SourcePreferences = Injekt.get(), - // SY --> - private val toggleSources: ToggleSources = Injekt.get(), - // SY <-- ) : BasePresenter(), SourcesFilterState by state { private val _events = Channel(Int.MAX_VALUE) @@ -81,8 +77,8 @@ class SourcesFilterPresenter( } // SY --> - fun toggleSources(isEnable: Boolean, sources: List) { - toggleSources.await(isEnable, sources) + fun toggleSources(enable: Boolean, sources: List) { + toggleSource.await(sources.map { it.id }, enable) } // SY <--