X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneDownloaderImpl.java;h=d59f1f5b4fd34421bc075ffda580b3166ebc0c7e;hb=f67d0cbb1bc328c0072fe5f795ffb31cf1b987bb;hp=ebdbecba69446a9d4f38f610bf96a20b4d707e7f;hpb=ec06ae64c86f0b06bb0cf9f8b289e7907e81dffa;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java index ebdbecb..d59f1f5 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloaderImpl.java @@ -99,22 +99,23 @@ public class SoneDownloaderImpl extends AbstractService implements SoneDownloade * The Sone to add */ @Override - public void addSone(Sone sone) { + public void addSone(final Sone sone) { if (!sones.add(sone)) { freenetInterface.unregisterUsk(sone); } - freenetInterface.registerUsk(sone, this); + freenetInterface.registerUsk(sone, new SoneUpdater() { + @Override + public void updateSone(long edition) { + if (edition > sone.getLatestEdition()) { + sone.setLatestEdition(edition); + new Thread(fetchSoneAction(sone), + "Sone Downloader").start(); + } + } + }); } - /** - * Fetches the updated Sone. This method is a callback method for - * {@link FreenetInterface#registerUsk(Sone, SoneDownloader)}. - * - * @param sone - * The Sone to fetch - */ - @Override - public void fetchSone(Sone sone) { + private void fetchSone(Sone sone) { fetchSone(sone, sone.getRequestUri().sskForUSK()); }