From 41deff1bf3bb7812b361315eb0953fa18f378057 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Wed, 5 Jun 2019 17:41:09 +0100
Subject: [PATCH] Suppress redundant enabled/disabled events.

---
 .../org/briarproject/bramble/plugin/PluginManagerImpl.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java
index cbaac09430..d4d69ca565 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/PluginManagerImpl.java
@@ -250,6 +250,7 @@ class PluginManagerImpl implements PluginManager, Service {
 	private class Callback implements PluginCallback {
 
 		private final TransportId id;
+		private final AtomicBoolean enabled = new AtomicBoolean(false);
 
 		private Callback(TransportId id) {
 			this.id = id;
@@ -295,12 +296,14 @@ class PluginManagerImpl implements PluginManager, Service {
 
 		@Override
 		public void transportEnabled() {
-			eventBus.broadcast(new TransportEnabledEvent(id));
+			if (!enabled.getAndSet(true))
+				eventBus.broadcast(new TransportEnabledEvent(id));
 		}
 
 		@Override
 		public void transportDisabled() {
-			eventBus.broadcast(new TransportDisabledEvent(id));
+			if (enabled.getAndSet(false))
+				eventBus.broadcast(new TransportDisabledEvent(id));
 		}
 
 		@Override
-- 
GitLab