♻️ Move startup notification into handler
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / notification / NotificationHandlerModule.kt
index a3c10a6..539f001 100644 (file)
@@ -24,6 +24,7 @@ import net.pterodactylus.sone.data.*
 import net.pterodactylus.sone.main.*
 import net.pterodactylus.sone.notify.*
 import net.pterodactylus.util.notify.*
+import java.util.concurrent.*
 import java.util.concurrent.Executors.*
 import java.util.function.*
 import javax.inject.*
@@ -46,6 +47,7 @@ class NotificationHandlerModule : AbstractModule() {
                bind<ImageInsertHandler>().asSingleton()
                bind<FirstStartHandler>().asSingleton()
                bind<ConfigNotReadHandler>().asSingleton()
+               bind<StartupHandler>().asSingleton()
        }
 
        @Provides
@@ -75,7 +77,7 @@ class NotificationHandlerModule : AbstractModule() {
                        ListNotification<Sone>("sones-locked-notification", "sones", loaders.loadTemplate("/templates/notify/lockedSonesNotification.html"), dismissable = true)
 
        @Provides
-       fun getScheduledExecutorService() =
+       fun getScheduledExecutorService(): ScheduledExecutorService =
                        newScheduledThreadPool(1)
 
        @Provides
@@ -120,6 +122,12 @@ class NotificationHandlerModule : AbstractModule() {
        fun getConfigNotReadNotification(loaders: Loaders) =
                        TemplateNotification("config-not-read-notification", loaders.loadTemplate("/templates/notify/configNotReadNotification.html"))
 
+       @Provides
+       @Singleton
+       @Named("startup")
+       fun getStartupNotification(loaders: Loaders) =
+                       TemplateNotification("startup-notification", loaders.loadTemplate("/templates/notify/startupNotification.html"))
+
        private inline fun <reified T> bind(): AnnotatedBindingBuilder<T> = bind(T::class.java)
        private fun ScopedBindingBuilder.asSingleton() = `in`(Singleton::class.java)