浏览代码

Toggle enabled source in bulk

Maybe fixes #8439
arkon 2 年之前
父节点
当前提交
280b0f42db

+ 7 - 0
app/src/main/java/eu/kanade/domain/source/interactor/ToggleSource.kt

@@ -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()
     }

+ 3 - 1
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 {