X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FNewRemotePostHandler.kt;h=91eaae00f744dd8fb042bc085f255e288590bc17;hp=1127feafb82e6ef0ecbeb3119388787fecc02e92;hb=438378deab1514f0f608d975ef65f5b7aea44ccb;hpb=b9320b57631d90d344edeb2a86c61db00ac50911 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 1127fea..91eaae0 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt @@ -1,5 +1,5 @@ /** - * Sone - NewRemotePostHandler.kt - Copyright © 2019 David ‘Bombe’ Roden + * Sone - NewRemotePostHandler.kt - Copyright © 2019–2020 David ‘Bombe’ Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,12 +22,13 @@ 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) { @@ -39,4 +40,14 @@ class NewRemotePostHandler(private val notificationManager: NotificationManager, } } + @Subscribe + fun postRemoved(event: PostRemovedEvent) { + notification.remove(event.post) + } + + @Subscribe + fun postMarkedKnown(event: MarkPostKnownEvent) { + notification.remove(event.post) + } + }