Toggle enabled source in bulk
Maybe fixes #8439 (cherry picked from commit 280b0f42db2cc8c21ac046b11717cac6975746ca)
This commit is contained in:
parent
a549189839
commit
4e37fbca17
@ -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()) }
|
||||
|
@ -18,6 +18,13 @@ class ToggleSource(
|
||||
}
|
||||
}
|
||||
|
||||
fun await(sourceIds: List<Long>, 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()
|
||||
}
|
||||
|
@ -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<Source>) {
|
||||
preferences.disabledSources().getAndSet { disabledSources ->
|
||||
if (isEnable) {
|
||||
disabledSources - sources.map { it.id.toString() }.toSet()
|
||||
} else {
|
||||
disabledSources + sources.map { it.id.toString() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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 {
|
||||
|
@ -21,8 +21,8 @@ class SourceFilterController : FullComposeController<SourcesFilterPresenter>() {
|
||||
presenter.toggleSource(source)
|
||||
},
|
||||
// SY -->
|
||||
onClickSources = { isEnable, sources ->
|
||||
presenter.toggleSources(isEnable, sources)
|
||||
onClickSources = { enable, sources ->
|
||||
presenter.toggleSources(enable, sources)
|
||||
},
|
||||
// SY <--
|
||||
)
|
||||
|
@ -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<SourceFilterController>(), SourcesFilterState by state {
|
||||
|
||||
private val _events = Channel<Event>(Int.MAX_VALUE)
|
||||
@ -81,8 +77,8 @@ class SourcesFilterPresenter(
|
||||
}
|
||||
|
||||
// SY -->
|
||||
fun toggleSources(isEnable: Boolean, sources: List<Source>) {
|
||||
toggleSources.await(isEnable, sources)
|
||||
fun toggleSources(enable: Boolean, sources: List<Source>) {
|
||||
toggleSource.await(sources.map { it.id }, enable)
|
||||
}
|
||||
// SY <--
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user