From 151c58fa9fc58babe2887f2c1e8d04e0cb334f5d Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Fri, 21 Aug 2020 15:57:22 +0200 Subject: [PATCH] Start event system immediately after start Instead of waiting for the online monitor to do it'S first run, we not ignore model state changes from unknown to online --- .../java/ctbrec/ui/CamrecApplication.java | 25 +++++-------------- .../ctbrec/ui/event/ShowNotification.java | 3 +++ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/CamrecApplication.java b/client/src/main/java/ctbrec/ui/CamrecApplication.java index d5bb44cb..d1f04896 100644 --- a/client/src/main/java/ctbrec/ui/CamrecApplication.java +++ b/client/src/main/java/ctbrec/ui/CamrecApplication.java @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Objects; -import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -317,24 +316,12 @@ public class CamrecApplication extends Application { } private void registerAlertSystem() { - new Thread(() -> { - try { - // don't register before 1 minute has passed, because directly after - // the start of ctbrec, an event for every online model would be fired, - // which is annoying as f - Thread.sleep(TimeUnit.MINUTES.toMillis(1)); - - for (EventHandlerConfiguration eventHandlerConfig : Config.getInstance().getSettings().eventHandlers) { - EventHandler handler = new EventHandler(eventHandlerConfig); - EventBusHolder.register(handler); - LOG.debug("Registered event handler for {} {}", eventHandlerConfig.getEvent(), eventHandlerConfig.getName()); - } - LOG.debug("Alert System registered"); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - LOG.info("Interrupted before alter system has been registered"); - } - }).start(); + for (EventHandlerConfiguration eventHandlerConfig : Config.getInstance().getSettings().eventHandlers) { + EventHandler handler = new EventHandler(eventHandlerConfig); + EventBusHolder.register(handler); + LOG.debug("Registered event handler for {} {}", eventHandlerConfig.getEvent(), eventHandlerConfig.getName()); + } + LOG.debug("Alert System registered"); } private void registerActiveRecordingsCounter() { diff --git a/client/src/main/java/ctbrec/ui/event/ShowNotification.java b/client/src/main/java/ctbrec/ui/event/ShowNotification.java index 58c371ae..6a10559a 100644 --- a/client/src/main/java/ctbrec/ui/event/ShowNotification.java +++ b/client/src/main/java/ctbrec/ui/event/ShowNotification.java @@ -22,6 +22,9 @@ public class ShowNotification extends Action { switch(evt.getType()) { case MODEL_STATUS_CHANGED: ModelStateChangedEvent modelEvent = (ModelStateChangedEvent) evt; + if (modelEvent.getOldState() == Model.State.UNKNOWN) { + return; + } Model m = modelEvent.getModel(); msg = m.getDisplayName() + " is now " + modelEvent.getNewState().toString(); break;