🚧 Filter new replies using the current Sone
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / NewElements.kt
index 1026f36..4dd78cb 100644 (file)
@@ -18,6 +18,7 @@ package net.pterodactylus.sone.web
 
 import net.pterodactylus.sone.data.Post
 import net.pterodactylus.sone.data.PostReply
+import net.pterodactylus.sone.data.Sone
 import net.pterodactylus.sone.notify.ListNotification
 import net.pterodactylus.sone.notify.PostVisibilityFilter
 import net.pterodactylus.sone.notify.ReplyVisibilityFilter
@@ -38,15 +39,14 @@ class NewElements @Inject constructor(
                private val replyVisibilityFilter: ReplyVisibilityFilter
 ) {
 
-       val newPosts: Collection<Post>
-               get() = listOf(newPostNotification, localPostNotification)
-                               .flatMap(ListNotification<Post>::elements)
-                               .filter { postVisibilityFilter.isPostVisible(null, it) }
+       fun newPosts(currentSone: Sone? = null): Collection<Post> =
+               listOf(newPostNotification, localPostNotification)
+                       .flatMap(ListNotification<Post>::elements)
+                       .filter { postVisibilityFilter.isPostVisible(currentSone, it) }
 
-       val newReplies: Collection<PostReply>
-               get() = listOf(newReplyNotification, localReplyNotification)
-                               .flatMap(ListNotification<PostReply>::elements)
-                               .filter { replyVisibilityFilter.isReplyVisible(null, it) }
-}
+       fun newReplies(currentSone: Sone? = null): Collection<PostReply> =
+               listOf(newReplyNotification, localReplyNotification)
+                       .flatMap(ListNotification<PostReply>::elements)
+                       .filter { replyVisibilityFilter.isReplyVisible(currentSone, it) }
 
-private fun <R> Collection<*>.cast(): List<R> = map { it as R }
+}