X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FNewSoneHandler.kt;h=eb384c7cb104ebf1d8874bf2e611236ce06a09de;hb=faf66247a34f64946990a985d2ea3003465969cb;hp=9ac6c28000a0f140fb38361d27a6799cde970530;hpb=188857148a7b035bfc6033b1fd40d774bd1fac65;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandler.kt b/src/main/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandler.kt index 9ac6c28..eb384c7 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandler.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandler.kt @@ -1,5 +1,5 @@ /** - * Sone - NewSoneHandler.kt - Copyright © 2019 David ‘Bombe’ Roden + * Sone - NewSoneHandler.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,24 +22,29 @@ import net.pterodactylus.sone.core.event.* import net.pterodactylus.sone.data.* import net.pterodactylus.sone.notify.* import net.pterodactylus.util.notify.* -import net.pterodactylus.util.template.* +import javax.inject.* /** * Notification handler for “new Sone discovered” events. */ -class NewSoneHandler(private val notificationManager: NotificationManager, template: Template) { - - private val notification = ListNotification("new-sone-notification", "", template) +class NewSoneHandler @Inject constructor(private val notificationManager: NotificationManager, @Named("newSone") private val notification: ListNotification) { @Subscribe fun newSoneFound(newSoneFoundEvent: NewSoneFoundEvent) { - if (!notificationManager.hasNotification("first-start-notification")) { + if (!notificationManager.hasFirstStartNotification()) { notification.add(newSoneFoundEvent.sone) notificationManager.addNotification(notification) } } -} + @Subscribe + fun markedSoneKnown(markSoneKnownEvent: MarkSoneKnownEvent) { + notification.remove(markSoneKnownEvent.sone) + } -private fun NotificationManager.hasNotification(id: String) = - getNotification(id) != null + @Subscribe + fun soneRemoved(soneRemovedEvent: SoneRemovedEvent) { + notification.remove(soneRemovedEvent.sone) + } + +}