]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/jsonrpc/SignalJsonRpcDispatcherHandler.java
Implement unregister command for jsonrpc and dbus daemon
[signal-cli] / src / main / java / org / asamk / signal / jsonrpc / SignalJsonRpcDispatcherHandler.java
index c4e9775aefb52f273e378286d830427a15fbf8c0..12a56775f31f0307527af46b9112886ef156afb4 100644 (file)
@@ -64,6 +64,8 @@ public class SignalJsonRpcDispatcherHandler {
 
         if (!noReceiveOnStart) {
             c.getAccountNumbers().stream().map(c::getManager).filter(Objects::nonNull).forEach(this::subscribeReceive);
+            c.addOnManagerAddedHandler(this::subscribeReceive);
+            c.addOnManagerRemovedHandler(this::unsubscribeReceive);
         }
 
         handleConnection();
@@ -76,6 +78,9 @@ public class SignalJsonRpcDispatcherHandler {
             subscribeReceive(m);
         }
 
+        final var currentThread = Thread.currentThread();
+        m.addClosedListener(currentThread::interrupt);
+
         handleConnection();
     }