X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FNewRemotePostHandler.kt;h=6efff854334cd8bdd085ba035b268a2c845be286;hb=4af887c75667793c197b564f16b7e95b1f63cbc7;hp=acf998028162b8e5fba8c74802360730a8c501cc;hpb=0dc7811a459455dd2b670eb1924df27f65c36a24;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt b/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt index acf9980..6efff85 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt @@ -22,19 +22,32 @@ import net.pterodactylus.sone.core.event.* import net.pterodactylus.sone.data.* import net.pterodactylus.sone.notify.* import net.pterodactylus.util.notify.* +import javax.inject.* /** * Handler for [NewPostFoundEvent]s that adds the new post to the “new posts” notification and * displays the notification if the “first start” notification is not being shown. */ -class NewRemotePostHandler(private val notificationManager: NotificationManager, private val notification: ListNotification) { +class NewRemotePostHandler @Inject constructor(private val notificationManager: NotificationManager, @Named("newRemotePost") private val notification: ListNotification) { @Subscribe fun newPostFound(newPostFoundEvent: NewPostFoundEvent) { - notification.add(newPostFoundEvent.post) - if (!notificationManager.hasFirstStartNotification()) { - notificationManager.addNotification(notification) + if (!newPostFoundEvent.post.sone.isLocal) { + notification.add(newPostFoundEvent.post) + if (!notificationManager.hasFirstStartNotification()) { + notificationManager.addNotification(notification) + } } } + @Subscribe + fun postRemoved(event: PostRemovedEvent) { + notification.remove(event.post) + } + + @Subscribe + fun postMarkedKnown(event: MarkPostKnownEvent) { + notification.remove(event.post) + } + }