mirror of https://github.com/zlatinb/muwire
fix restoring paused downloads
parent
7045927666
commit
76e41a0383
|
@ -17,6 +17,7 @@ import com.muwire.core.download.SourceDiscoveredEvent
|
||||||
import com.muwire.core.download.UIDownloadCancelledEvent
|
import com.muwire.core.download.UIDownloadCancelledEvent
|
||||||
import com.muwire.core.download.UIDownloadEvent
|
import com.muwire.core.download.UIDownloadEvent
|
||||||
import com.muwire.core.download.UIDownloadPausedEvent
|
import com.muwire.core.download.UIDownloadPausedEvent
|
||||||
|
import com.muwire.core.download.UIDownloadResumedEvent
|
||||||
import com.muwire.core.files.FileDownloadedEvent
|
import com.muwire.core.files.FileDownloadedEvent
|
||||||
import com.muwire.core.files.FileHashedEvent
|
import com.muwire.core.files.FileHashedEvent
|
||||||
import com.muwire.core.files.FileHasher
|
import com.muwire.core.files.FileHasher
|
||||||
|
@ -219,6 +220,7 @@ public class Core {
|
||||||
eventBus.register(UIDownloadCancelledEvent.class, downloadManager)
|
eventBus.register(UIDownloadCancelledEvent.class, downloadManager)
|
||||||
eventBus.register(SourceDiscoveredEvent.class, downloadManager)
|
eventBus.register(SourceDiscoveredEvent.class, downloadManager)
|
||||||
eventBus.register(UIDownloadPausedEvent.class, downloadManager)
|
eventBus.register(UIDownloadPausedEvent.class, downloadManager)
|
||||||
|
eventBus.register(UIDownloadResumedEvent.class, downloadManager)
|
||||||
|
|
||||||
log.info("initializing upload manager")
|
log.info("initializing upload manager")
|
||||||
UploadManager uploadManager = new UploadManager(eventBus, fileManager, meshManager, downloadManager)
|
UploadManager uploadManager = new UploadManager(eventBus, fileManager, meshManager, downloadManager)
|
||||||
|
|
|
@ -94,6 +94,10 @@ public class DownloadManager {
|
||||||
persistDownloaders()
|
persistDownloaders()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onUIDownloadResumedEvent(UIDownloadResumedEvent e) {
|
||||||
|
persistDownloaders()
|
||||||
|
}
|
||||||
|
|
||||||
void resume(Downloader downloader) {
|
void resume(Downloader downloader) {
|
||||||
executor.execute({downloader.download() as Runnable})
|
executor.execute({downloader.download() as Runnable})
|
||||||
}
|
}
|
||||||
|
@ -125,9 +129,10 @@ public class DownloadManager {
|
||||||
infoHash, json.pieceSizePow2, connector, destinations, incompletes, pieces)
|
infoHash, json.pieceSizePow2, connector, destinations, incompletes, pieces)
|
||||||
if (json.paused != null)
|
if (json.paused != null)
|
||||||
downloader.paused = json.paused
|
downloader.paused = json.paused
|
||||||
|
downloaders.put(infoHash, downloader)
|
||||||
|
downloader.readPieces()
|
||||||
if (!downloader.paused)
|
if (!downloader.paused)
|
||||||
downloaders.put(infoHash, downloader)
|
downloader.download()
|
||||||
downloader.download()
|
|
||||||
eventBus.publish(new DownloadStartedEvent(downloader : downloader))
|
eventBus.publish(new DownloadStartedEvent(downloader : downloader))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -207,11 +207,12 @@ public class Downloader {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resume() {
|
public void resume() {
|
||||||
|
paused = false
|
||||||
|
readPieces()
|
||||||
destinations.each { destination ->
|
destinations.each { destination ->
|
||||||
def worker = activeWorkers.get(destination)
|
def worker = activeWorkers.get(destination)
|
||||||
if (worker != null) {
|
if (worker != null) {
|
||||||
if (worker.currentState == WorkerState.FINISHED) {
|
if (worker.currentState == WorkerState.FINISHED) {
|
||||||
paused = false
|
|
||||||
def newWorker = new DownloadWorker(destination)
|
def newWorker = new DownloadWorker(destination)
|
||||||
activeWorkers.put(destination, newWorker)
|
activeWorkers.put(destination, newWorker)
|
||||||
executorService.submit(newWorker)
|
executorService.submit(newWorker)
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
package com.muwire.core.download
|
||||||
|
|
||||||
|
import com.muwire.core.Event
|
||||||
|
|
||||||
|
class UIDownloadResumedEvent extends Event {
|
||||||
|
}
|
|
@ -18,6 +18,7 @@ import com.muwire.core.download.DownloadStartedEvent
|
||||||
import com.muwire.core.download.UIDownloadCancelledEvent
|
import com.muwire.core.download.UIDownloadCancelledEvent
|
||||||
import com.muwire.core.download.UIDownloadEvent
|
import com.muwire.core.download.UIDownloadEvent
|
||||||
import com.muwire.core.download.UIDownloadPausedEvent
|
import com.muwire.core.download.UIDownloadPausedEvent
|
||||||
|
import com.muwire.core.download.UIDownloadResumedEvent
|
||||||
import com.muwire.core.search.QueryEvent
|
import com.muwire.core.search.QueryEvent
|
||||||
import com.muwire.core.search.SearchEvent
|
import com.muwire.core.search.SearchEvent
|
||||||
import com.muwire.core.trust.TrustEvent
|
import com.muwire.core.trust.TrustEvent
|
||||||
|
@ -165,6 +166,7 @@ class MainFrameController {
|
||||||
void resume() {
|
void resume() {
|
||||||
def downloader = model.downloads[selectedDownload()].downloader
|
def downloader = model.downloads[selectedDownload()].downloader
|
||||||
downloader.resume()
|
downloader.resume()
|
||||||
|
core.eventBus.publish(new UIDownloadResumedEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ControllerAction
|
@ControllerAction
|
||||||
|
|
Loading…
Reference in New Issue