From 830f3661e76523295a20078b75857258a27d6703 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Thu, 6 Sep 2018 18:41:19 +0200 Subject: [PATCH] Avoid getInstanceOf() in listener as it is a costly operation --- .../smackx/chat_markers/ChatMarkersManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/chat_markers/ChatMarkersManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/chat_markers/ChatMarkersManager.java index 0e2c2a7a9..3910a8dbb 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/chat_markers/ChatMarkersManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/chat_markers/ChatMarkersManager.java @@ -92,6 +92,8 @@ public final class ChatMarkersManager extends Manager { private final AsyncButOrdered asyncButOrdered = new AsyncButOrdered<>(); + private final ChatManager chatManager; + /** * Get the singleton instance of ChatMarkersManager. * @@ -111,6 +113,9 @@ public final class ChatMarkersManager extends Manager { private ChatMarkersManager(XMPPConnection connection) { super(connection); + + chatManager = ChatManager.getInstanceFor(connection); + connection.addStanzaInterceptor(new StanzaListener() { @Override public void processStanza(Stanza packet) @@ -135,7 +140,7 @@ public final class ChatMarkersManager extends Manager { EntityFullJid fullFrom = message.getFrom().asEntityFullJidIfPossible(); EntityBareJid bareFrom = fullFrom.asEntityBareJid(); - final Chat chat = ChatManager.getInstanceFor(connection()).chatWith(bareFrom); + final Chat chat = chatManager.chatWith(bareFrom); asyncButOrdered.performAsyncButOrdered(chat, new Runnable() { @Override