Преглед на файлове

Download from up to 5 different sources concurrently (closes #2534)

arkon преди 4 години
родител
ревизия
c9035b5df9
променени са 1 файла, в които са добавени 10 реда и са изтрити 1 реда
  1. 10 1
      app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt

+ 10 - 1
app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt

@@ -181,7 +181,16 @@ class Downloader(
         subscriptions.clear()
 
         subscriptions += downloadsRelay.concatMapIterable { it }
-            .concatMap { downloadChapter(it).subscribeOn(Schedulers.io()) }
+            // Concurrently download from 5 different sources
+            .groupBy { it.source }
+            .flatMap(
+                { bySource ->
+                    bySource.concatMap { download ->
+                        downloadChapter(download).subscribeOn(Schedulers.io())
+                    }
+                },
+                5
+            )
             .onBackpressureBuffer()
             .observeOn(AndroidSchedulers.mainThread())
             .subscribe(