From: David ‘Bombe’ Roden Date: Sun, 13 Nov 2011 18:49:20 +0000 (+0100) Subject: Add Sone-following times. X-Git-Tag: 0.7.3^2~8^2~4 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=6b766ddf457077381e69a2ff0220222ad8da967e Add Sone-following times. --- diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 37fdef9..d0898f1 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -136,6 +136,9 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis /* synchronize access on itself. */ private final Map soneStatuses = new HashMap(); + /** The times Sones were followed. */ + private final Map soneFollowingTimes = new HashMap(); + /** Locked local Sones. */ /* synchronize on itself. */ private final Set lockedSones = new HashSet(); @@ -2196,6 +2199,17 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis configuration.getStringValue("KnownSone/" + soneCounter + "/ID").setValue(null); } + /* save Sone following times. */ + soneCounter = 0; + synchronized (soneFollowingTimes) { + for (Entry soneFollowingTime : soneFollowingTimes.entrySet()) { + configuration.getStringValue("SoneFollowingTimes/" + soneCounter + "/Sone").setValue(soneFollowingTime.getKey().getId()); + configuration.getLongValue("SoneFollowingTimes/" + soneCounter + "/Time").setValue(soneFollowingTime.getValue()); + ++soneCounter; + } + configuration.getStringValue("SoneFollowingTimes/" + soneCounter + "/Sone").setValue(null); + } + /* save known posts. */ int postCounter = 0; synchronized (newPosts) { @@ -2312,6 +2326,20 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } } + /* load Sone following times. */ + soneCounter = 0; + while (true) { + String soneId = configuration.getStringValue("SoneFollowingTimes/" + soneCounter + "/Sone").getValue(null); + if (soneId == null) { + break; + } + long time = configuration.getLongValue("SoneFollowingTimes/" + soneCounter + "/Time").getValue(Long.MAX_VALUE); + synchronized (soneFollowingTimes) { + soneFollowingTimes.put(getSone(soneId), time); + } + ++soneCounter; + } + /* load known posts. */ int postCounter = 0; while (true) {