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.RenameSourceCategory
|
||||||
import eu.kanade.domain.source.interactor.SetSourceCategories
|
import eu.kanade.domain.source.interactor.SetSourceCategories
|
||||||
import eu.kanade.domain.source.interactor.ToggleExcludeFromDataSaver
|
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.FeedSavedSearchRepository
|
||||||
import eu.kanade.domain.source.repository.SavedSearchRepository
|
import eu.kanade.domain.source.repository.SavedSearchRepository
|
||||||
import eu.kanade.tachiyomi.source.online.MetadataSource
|
import eu.kanade.tachiyomi.source.online.MetadataSource
|
||||||
@ -80,7 +79,6 @@ class SYDomainModule : InjektModule {
|
|||||||
addFactory { GetShowLatest(get()) }
|
addFactory { GetShowLatest(get()) }
|
||||||
addFactory { ToggleExcludeFromDataSaver(get()) }
|
addFactory { ToggleExcludeFromDataSaver(get()) }
|
||||||
addFactory { SetSourceCategories(get()) }
|
addFactory { SetSourceCategories(get()) }
|
||||||
addFactory { ToggleSources(get()) }
|
|
||||||
addFactory { SetMangaFilteredScanlators(get()) }
|
addFactory { SetMangaFilteredScanlators(get()) }
|
||||||
addFactory { GetAllManga(get()) }
|
addFactory { GetAllManga(get()) }
|
||||||
addFactory { GetMangaBySource(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 {
|
private fun isEnabled(sourceId: Long): Boolean {
|
||||||
return sourceId.toString() in preferences.disabledSources().get()
|
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) {
|
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 {
|
private fun createUrl(url: String, pkgName: String, pkgFactory: String?, path: String = ""): String {
|
||||||
|
@ -21,8 +21,8 @@ class SourceFilterController : FullComposeController<SourcesFilterPresenter>() {
|
|||||||
presenter.toggleSource(source)
|
presenter.toggleSource(source)
|
||||||
},
|
},
|
||||||
// SY -->
|
// SY -->
|
||||||
onClickSources = { isEnable, sources ->
|
onClickSources = { enable, sources ->
|
||||||
presenter.toggleSources(isEnable, sources)
|
presenter.toggleSources(enable, sources)
|
||||||
},
|
},
|
||||||
// SY <--
|
// SY <--
|
||||||
)
|
)
|
||||||
|
@ -4,7 +4,6 @@ import android.os.Bundle
|
|||||||
import eu.kanade.domain.source.interactor.GetLanguagesWithSources
|
import eu.kanade.domain.source.interactor.GetLanguagesWithSources
|
||||||
import eu.kanade.domain.source.interactor.ToggleLanguage
|
import eu.kanade.domain.source.interactor.ToggleLanguage
|
||||||
import eu.kanade.domain.source.interactor.ToggleSource
|
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.model.Source
|
||||||
import eu.kanade.domain.source.service.SourcePreferences
|
import eu.kanade.domain.source.service.SourcePreferences
|
||||||
import eu.kanade.presentation.browse.SourcesFilterState
|
import eu.kanade.presentation.browse.SourcesFilterState
|
||||||
@ -26,9 +25,6 @@ class SourcesFilterPresenter(
|
|||||||
private val toggleSource: ToggleSource = Injekt.get(),
|
private val toggleSource: ToggleSource = Injekt.get(),
|
||||||
private val toggleLanguage: ToggleLanguage = Injekt.get(),
|
private val toggleLanguage: ToggleLanguage = Injekt.get(),
|
||||||
private val preferences: SourcePreferences = Injekt.get(),
|
private val preferences: SourcePreferences = Injekt.get(),
|
||||||
// SY -->
|
|
||||||
private val toggleSources: ToggleSources = Injekt.get(),
|
|
||||||
// SY <--
|
|
||||||
) : BasePresenter<SourceFilterController>(), SourcesFilterState by state {
|
) : BasePresenter<SourceFilterController>(), SourcesFilterState by state {
|
||||||
|
|
||||||
private val _events = Channel<Event>(Int.MAX_VALUE)
|
private val _events = Channel<Event>(Int.MAX_VALUE)
|
||||||
@ -81,8 +77,8 @@ class SourcesFilterPresenter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
fun toggleSources(isEnable: Boolean, sources: List<Source>) {
|
fun toggleSources(enable: Boolean, sources: List<Source>) {
|
||||||
toggleSources.await(isEnable, sources)
|
toggleSource.await(sources.map { it.id }, enable)
|
||||||
}
|
}
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user