Remove updated time setter from Sone, store update time in database.
[Sone.git] / src / main / java / net / pterodactylus / sone / database / memory / MemoryDatabase.java
index 983f8da..d5d5396 100644 (file)
@@ -275,7 +275,7 @@ public class MemoryDatabase extends AbstractService implements Database {
                /* if we’re still here, Sone was loaded successfully. */
                lock.writeLock().lock();
                try {
-                       sone.setTime(soneTime);
+                       updateSoneTime(sone, soneTime);
                        sone.setProfile(profile);
                        sone.setLikePostIds(likedPostIds);
                        sone.setLikeReplyIds(likedReplyIds);
@@ -464,6 +464,7 @@ public class MemoryDatabase extends AbstractService implements Database {
        @Override
        protected void doStart() {
                soneDatabase.start();
+               memoryFriendDatabase.start();
                postDatabase.start();
                memoryBookmarkDatabase.start();
                loadKnownPostReplies();
@@ -475,6 +476,7 @@ public class MemoryDatabase extends AbstractService implements Database {
        protected void doStop() {
                try {
                        soneDatabase.stop();
+                       memoryFriendDatabase.stop();
                        postDatabase.stop();
                        memoryBookmarkDatabase.stop();
                        save();
@@ -515,6 +517,11 @@ public class MemoryDatabase extends AbstractService implements Database {
                soneDatabase.setSoneKnown(sone.getId());
        }
 
+       @Override
+       public void updateSoneTime(Sone sone, long soneTime) {
+               soneDatabase.updateSoneTime(sone.getId(), soneTime);
+       }
+
        private void storePosts(String soneId, Collection<Post> posts) {
                postDatabase.storePosts(soneId, posts);
        }
@@ -632,6 +639,11 @@ public class MemoryDatabase extends AbstractService implements Database {
        }
 
        @Override
+       public Optional<Long> getSoneFollowingTime(String remoteSoneId) {
+               return memoryFriendDatabase.getSoneFollowingTime(remoteSoneId);
+       }
+
+       @Override
        public boolean isFriend(LocalSone localSone, String friendSoneId) {
                if (!localSone.isLocal()) {
                        return false;