From d2ecfab9353ccc089d2b7f1c8b074551258013cf Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 9 Mar 2019 12:15:44 +0100 Subject: [PATCH] Rewire reconnection listener logic that got lost in the Smack 4.3 update. --- .../jivesoftware/spark/ui/ContactList.java | 6 +++-- .../jivesoftware/fastpath/FastpathPlugin.java | 24 +++++++------------ .../sparkplugin/JinglePlugin.java | 14 ----------- .../sparkplugin/SoftPhonePlugin.java | 23 ++++++++++-------- 4 files changed, 25 insertions(+), 42 deletions(-) diff --git a/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java b/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java index e4e99a22b..934fb7c20 100644 --- a/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java +++ b/core/src/main/java/org/jivesoftware/spark/ui/ContactList.java @@ -71,7 +71,7 @@ import java.util.concurrent.ConcurrentLinkedQueue; public class ContactList extends JPanel implements ActionListener, - ContactGroupListener, Plugin, RosterListener, ConnectionListener { + ContactGroupListener, Plugin, RosterListener, ConnectionListener, ReconnectionListener { private static final long serialVersionUID = -4391111935248627078L; private JPanel mainPanel = new JPanel(); @@ -241,7 +241,7 @@ public class ContactList extends JPanel implements ActionListener, }); SparkManager.getConnection().addConnectionListener(this); - + ReconnectionManager.getInstanceFor(SparkManager.getConnection()).addReconnectionListener(this); // Get command panel and add View Online/Offline, Add Contact // StatusBar statusBar = SparkManager.getWorkspace().getStatusBar(); @@ -2509,6 +2509,7 @@ moveToOffline(moveToOfflineContactItem); } + @Override public void reconnectingIn(int i) { switch (localPreferences.getReconnectPanelType()) { @@ -2545,6 +2546,7 @@ moveToOffline(moveToOfflineContactItem); } + @Override public void reconnectionFailed(Exception exception) { switch (localPreferences.getReconnectPanelType()) { diff --git a/plugins/fastpath/src/main/java/org/jivesoftware/fastpath/FastpathPlugin.java b/plugins/fastpath/src/main/java/org/jivesoftware/fastpath/FastpathPlugin.java index 807b9d6ed..d271bd59e 100644 --- a/plugins/fastpath/src/main/java/org/jivesoftware/fastpath/FastpathPlugin.java +++ b/plugins/fastpath/src/main/java/org/jivesoftware/fastpath/FastpathPlugin.java @@ -19,6 +19,8 @@ import org.jivesoftware.fastpath.resources.FastpathRes; import org.jivesoftware.fastpath.workspace.Workpane; import org.jivesoftware.fastpath.workspace.panes.BackgroundPane; import org.jivesoftware.smack.ConnectionListener; +import org.jivesoftware.smack.ReconnectionListener; +import org.jivesoftware.smack.ReconnectionManager; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; @@ -251,21 +253,6 @@ public class FastpathPlugin implements Plugin, ConnectionListener { @Override public void authenticated( XMPPConnection xmppConnection, boolean b ) { - - } - - public void connectionClosed() { - lostConnection(); - } - - public void connectionClosedOnError(Exception e) { - lostConnection(); - } - - public void reconnectingIn(int seconds) { - } - - public void reconnectionSuccessful() { // Rejoin the workgroup after 15 seconds. final TimerTask rejoinTask = new SwingTimerTask() { public void doRun() { @@ -278,7 +265,12 @@ public class FastpathPlugin implements Plugin, ConnectionListener { TaskEngine.getInstance().schedule(rejoinTask, 15000); } - public void reconnectionFailed(Exception e) { + public void connectionClosed() { + lostConnection(); + } + + public void connectionClosedOnError(Exception e) { + lostConnection(); } private void lostConnection() { diff --git a/plugins/jingle/src/main/java/org/jivesoftware/sparkplugin/JinglePlugin.java b/plugins/jingle/src/main/java/org/jivesoftware/sparkplugin/JinglePlugin.java index 2c7b0ae0f..876c9d7f3 100644 --- a/plugins/jingle/src/main/java/org/jivesoftware/sparkplugin/JinglePlugin.java +++ b/plugins/jingle/src/main/java/org/jivesoftware/sparkplugin/JinglePlugin.java @@ -362,18 +362,4 @@ public class JinglePlugin implements Plugin, Phone, ConnectionListener { public void connectionClosedOnError(Exception e) { } - @Override - public void reconnectingIn(int seconds) { - } - - @Override - public void reconnectionSuccessful() { - // Add Jingle to discovered items list. - SparkManager.addFeature(JINGLE_NAMESPACE); - } - - @Override - public void reconnectionFailed(Exception e) { - - } } diff --git a/plugins/sip/src/main/java/org/jivesoftware/sparkplugin/SoftPhonePlugin.java b/plugins/sip/src/main/java/org/jivesoftware/sparkplugin/SoftPhonePlugin.java index 042eba754..2b149a128 100644 --- a/plugins/sip/src/main/java/org/jivesoftware/sparkplugin/SoftPhonePlugin.java +++ b/plugins/sip/src/main/java/org/jivesoftware/sparkplugin/SoftPhonePlugin.java @@ -35,6 +35,8 @@ import net.java.sipmack.softphone.listeners.RegisterEvent; import net.java.sipmack.softphone.listeners.SoftPhoneListener; import org.jivesoftware.smack.ConnectionListener; +import org.jivesoftware.smack.ReconnectionListener; +import org.jivesoftware.smack.ReconnectionManager; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.roster.Roster; import org.jivesoftware.smack.roster.RosterEntry; @@ -131,13 +133,22 @@ public class SoftPhonePlugin implements Plugin, SoftPhoneListener { TaskEngine.getInstance().schedule(registerTask, 15000); } + @Override public void connectionClosed() { //softPhone.handleUnregisterRequest(); } + @Override public void connectionClosedOnError(Exception exception) { softPhone.handleUnregisterRequest(); } + }); + + ReconnectionManager.getInstanceFor(SparkManager.getConnection()).addReconnectionListener(new ReconnectionListener() { + + @Override + public void reconnectionFailed(Exception e) { + } public void reconnectingIn(int i) { // Wait a bit before registering @@ -149,15 +160,7 @@ public class SoftPhonePlugin implements Plugin, SoftPhoneListener { TaskEngine.getInstance().schedule(registerTask, 15000); } - - public void reconnectionSuccessful() { - } - - public void reconnectionFailed(Exception exception) { - - } - - }); + }); } /** @@ -275,4 +278,4 @@ public class SoftPhonePlugin implements Plugin, SoftPhoneListener { } } -} \ No newline at end of file +}