Download a local Sone from Freenet, too.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index d5625c9..abebdd7 100644 (file)
@@ -451,6 +451,15 @@ public class Core implements IdentityListener {
                        soneInserter.start();
                        setSoneStatus(sone, SoneStatus.idle);
                        loadSone(sone);
+                       new Thread(new Runnable() {
+
+                               @Override
+                               @SuppressWarnings("synthetic-access")
+                               public void run() {
+                                       soneDownloader.fetchSone(sone);
+                               }
+
+                       }, "Sone Downloader").start();
                        return sone;
                }
        }
@@ -486,7 +495,8 @@ public class Core implements IdentityListener {
                }
                synchronized (remoteSones) {
                        final Sone sone = getRemoteSone(identity.getId()).setIdentity(identity);
-                       sone.setRequestUri(getSoneUri(identity.getRequestUri(), identity.getProperty("Sone.LatestEdition")));
+                       sone.setRequestUri(getSoneUri(identity.getRequestUri()));
+                       sone.setLatestEdition(Numbers.safeParseLong(identity.getProperty("Sone.LatestEdition"), (long) 0));
                        remoteSones.put(identity.getId(), sone);
                        soneDownloader.addSone(sone);
                        new Thread(new Runnable() {
@@ -957,13 +967,11 @@ public class Core implements IdentityListener {
         *
         * @param uriString
         *            The URI to derive the Sone URI from
-        * @param latestEditionString
-        *            The latest edition as a {@link String}, or {@code null}
         * @return The derived URI
         */
-       private FreenetURI getSoneUri(String uriString, String latestEditionString) {
+       private FreenetURI getSoneUri(String uriString) {
                try {
-                       FreenetURI uri = new FreenetURI(uriString).setDocName("Sone").setMetaString(new String[0]).setSuggestedEdition(Numbers.safeParseLong(latestEditionString, (long) 0));
+                       FreenetURI uri = new FreenetURI(uriString).setDocName("Sone").setMetaString(new String[0]);
                        return uri;
                } catch (MalformedURLException mue1) {
                        logger.log(Level.WARNING, "Could not create Sone URI from URI: " + uriString, mue1);
@@ -991,7 +999,7 @@ public class Core implements IdentityListener {
         */
        @Override
        public void ownIdentityRemoved(OwnIdentity ownIdentity) {
-               /* TODO */
+               logger.log(Level.FINEST, "Removing OwnIdentity: " + ownIdentity);
        }
 
        /**
@@ -1007,8 +1015,16 @@ public class Core implements IdentityListener {
         * {@inheritDoc}
         */
        @Override
-       public void identityUpdated(Identity identity) {
-               /* TODO */
+       public void identityUpdated(final Identity identity) {
+               new Thread(new Runnable() {
+
+                       @Override
+                       @SuppressWarnings("synthetic-access")
+                       public void run() {
+                               Sone sone = getRemoteSone(identity.getId());
+                               soneDownloader.fetchSone(sone);
+                       }
+               }).start();
        }
 
        /**