🔥 Remove setKnown() method from replies
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / database / memory / MemoryDatabase.kt
index df65a5a..fd7ac48 100644 (file)
@@ -28,12 +28,12 @@ import net.pterodactylus.sone.data.Album
 import net.pterodactylus.sone.data.Image
 import net.pterodactylus.sone.data.Post
 import net.pterodactylus.sone.data.PostReply
-import net.pterodactylus.sone.data.Reply.TIME_COMPARATOR
 import net.pterodactylus.sone.data.Sone
 import net.pterodactylus.sone.data.allAlbums
 import net.pterodactylus.sone.data.allImages
 import net.pterodactylus.sone.data.impl.AlbumBuilderImpl
 import net.pterodactylus.sone.data.impl.ImageBuilderImpl
+import net.pterodactylus.sone.data.newestReplyFirst
 import net.pterodactylus.sone.database.AlbumBuilder
 import net.pterodactylus.sone.database.Database
 import net.pterodactylus.sone.database.DatabaseException
@@ -62,7 +62,7 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio
        private val sonePosts: Multimap<String, Post> = HashMultimap.create<String, Post>()
        private val knownPosts = mutableSetOf<String>()
        private val allPostReplies = mutableMapOf<String, PostReply>()
-       private val sonePostReplies: Multimap<String, PostReply> = TreeMultimap.create<String, PostReply>(Comparator { leftString, rightString -> leftString.compareTo(rightString) }, TIME_COMPARATOR)
+       private val sonePostReplies: Multimap<String, PostReply> = TreeMultimap.create<String, PostReply>(Comparator { leftString, rightString -> leftString.compareTo(rightString) }, newestReplyFirst)
        private val knownPostReplies = mutableSetOf<String>()
        private val allAlbums = mutableMapOf<String, Album>()
        private val soneAlbums: Multimap<String, Album> = HashMultimap.create<String, Album>()
@@ -123,7 +123,7 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio
                        for (postReply in sone.replies) {
                                allPostReplies[postReply.id] = postReply
                        }
-                       sone.rootAlbum.allAlbums.let { albums ->
+                       sone.allAlbums.let { albums ->
                                soneAlbums.putAll(sone.id, albums)
                                albums.forEach { album -> allAlbums[album.id] = album }
                        }
@@ -227,7 +227,7 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio
                        readLock.withLock {
                                allPostReplies.values
                                                .filter { it.postId == postId }
-                                               .sortedWith(TIME_COMPARATOR)
+                                               .sortedWith(newestReplyFirst.reversed())
                        }
 
        override fun newPostReplyBuilder(): PostReplyBuilder =
@@ -297,12 +297,9 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio
 
        protected fun isPostReplyKnown(postReply: PostReply) = readLock.withLock { postReply.id in knownPostReplies }
 
-       fun setPostReplyKnown(postReply: PostReply, known: Boolean): Unit =
+       override fun setPostReplyKnown(postReply: PostReply): Unit =
                        writeLock.withLock {
-                               if (known)
-                                       knownPostReplies.add(postReply.id)
-                               else
-                                       knownPostReplies.remove(postReply.id)
+                               knownPostReplies.add(postReply.id)
                                saveKnownPostReplies()
                        }