diff --git a/build/projects/Spark.iml b/build/projects/Spark.iml
index 0e6856e2..e0c4a166 100644
--- a/build/projects/Spark.iml
+++ b/build/projects/Spark.iml
@@ -8,7 +8,7 @@
-
+
diff --git a/src/commercial/jniwrapper.jar b/src/commercial/jniwrapper.jar
index 0dd59b3f..947ca37e 100644
Binary files a/src/commercial/jniwrapper.jar and b/src/commercial/jniwrapper.jar differ
diff --git a/src/java/org/jivesoftware/spark/SessionManager.java b/src/java/org/jivesoftware/spark/SessionManager.java
index a0bfe43a..6fbced8b 100644
--- a/src/java/org/jivesoftware/spark/SessionManager.java
+++ b/src/java/org/jivesoftware/spark/SessionManager.java
@@ -29,14 +29,14 @@ import org.jivesoftware.sparkimpl.plugin.manager.Features;
import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
-import javax.swing.SwingUtilities;
-
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
+import javax.swing.SwingUtilities;
+
/**
* This manager is responsible for the handling of the XMPPConnection used within Spark. This is used
* for the changing of the users presence, the handling of connection errors and the ability to add
@@ -57,7 +57,7 @@ public final class SessionManager implements ConnectionListener {
private List presenceListeners = new ArrayList();
private String userBareAddress;
- private boolean unavaliable = false;
+ private boolean unavailable = false;
private DiscoverItems discoverItems;
private int previousPriority = -1;
@@ -82,7 +82,7 @@ public final class SessionManager implements ConnectionListener {
// create workgroup session
personalDataManager = new PrivateDataManager(getConnection());
-
+ // Use Idle Listener if running on windows.
if (Spark.isWindows()) {
try {
setIdleListener();
@@ -258,6 +258,8 @@ public final class SessionManager implements ConnectionListener {
/**
* Sets the Idle Timeout for this instance of Spark.
+ *
+ * @throws Exception thrown is an error occurs loading native library.
*/
private void setIdleListener() throws Exception {
@@ -266,7 +268,7 @@ public final class SessionManager implements ConnectionListener {
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
LocalPreferences localPref = SettingsManager.getLocalPreferences();
- int delay = 0;
+ int delay;
if (localPref.isIdleOn()) {
delay = localPref.getIdleTime() * 60000;
}
@@ -287,7 +289,7 @@ public final class SessionManager implements ConnectionListener {
Workspace workspace = SparkManager.getWorkspace();
Presence presence = workspace.getStatusBar().getPresence();
if (workspace != null && presence.getMode() == Presence.Mode.available) {
- unavaliable = true;
+ unavailable = true;
StatusItem away = workspace.getStatusBar().getStatusItem("Away");
Presence p = away.getPresence();
if (isLocked) {
@@ -309,12 +311,12 @@ public final class SessionManager implements ConnectionListener {
}
}
else {
- if (unavaliable) {
+ if (unavailable) {
setAvailableIfActive();
}
}
}
- }, 1000, 1000);
+ }, 11000, 500);
}
private void setAvailableIfActive() {
@@ -333,7 +335,7 @@ public final class SessionManager implements ConnectionListener {
}
changePresence(presence);
- unavaliable = false;
+ unavailable = false;
}
}