From 71091d4aae8c889f6d0fd577cba96ea16e4c5c0a Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sat, 13 Oct 2018 11:58:05 +0200 Subject: [PATCH] Move ChatMessageManager#refreshAll to client thread Closes #5897 Signed-off-by: Tomas Slusny --- .../client/chat/ChatMessageManager.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index 097f6bb6d4..698c3b8faf 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -35,7 +35,6 @@ import java.util.Collection; import java.util.Objects; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.atomic.AtomicReference; import javax.inject.Inject; import javax.inject.Singleton; @@ -49,6 +48,7 @@ import net.runelite.api.events.ResizeableChanged; import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.SetMessage; import net.runelite.api.events.VarbitChanged; +import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ChatColorConfig; import net.runelite.client.util.ColorUtil; @@ -57,18 +57,20 @@ public class ChatMessageManager { private final Multimap colorCache = HashMultimap.create(); private final Client client; - private final ScheduledExecutorService executor; private final ChatColorConfig chatColorConfig; + private final ClientThread clientThread; private int transparencyVarbit = -1; private final Queue queuedMessages = new ConcurrentLinkedQueue<>(); @Inject - private ChatMessageManager(Client client, ScheduledExecutorService executor, - ChatColorConfig chatColorConfig) + private ChatMessageManager( + Client client, + ChatColorConfig chatColorConfig, + ClientThread clientThread) { this.client = client; - this.executor = executor; this.chatColorConfig = chatColorConfig; + this.clientThread = clientThread; } @Subscribe @@ -95,7 +97,7 @@ public class ChatMessageManager if (event.getGroup().equals("textrecolor")) { loadColors(); - refreshAll(); + clientThread.invokeLater(this::refreshAll); } } @@ -594,15 +596,12 @@ public class ChatMessageManager private void refreshAll() { - executor.submit(() -> - { - client.getChatLineMap().values().stream() - .filter(Objects::nonNull) - .flatMap(clb -> Arrays.stream(clb.getLines())) - .filter(Objects::nonNull) - .forEach(this::update); + client.getChatLineMap().values().stream() + .filter(Objects::nonNull) + .flatMap(clb -> Arrays.stream(clb.getLines())) + .filter(Objects::nonNull) + .forEach(this::update); - client.refreshChat(); - }); + client.refreshChat(); } }