SPARK-1520 (#238)

* SPARK-1520

* SPARK-1520

removed import
This commit is contained in:
Speedy
2016-10-27 11:24:18 -05:00
committed by wroot
parent db49257f3d
commit 3b2b2c76fd

View File

@ -49,6 +49,7 @@ import org.jivesoftware.smackx.chatstates.ChatState;
import org.jivesoftware.spark.ChatManager;
import org.jivesoftware.spark.NativeHandler;
import org.jivesoftware.spark.SparkManager;
import org.jivesoftware.spark.Workspace;
import org.jivesoftware.spark.plugin.Plugin;
import org.jivesoftware.spark.ui.status.CustomStatusItem;
import org.jivesoftware.spark.ui.status.StatusBar;
@ -58,7 +59,7 @@ import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
import org.jivesoftware.smack.chat.ChatManagerListener;
import org.jivesoftware.smackx.chatstates.ChatStateListener;

public class SysTrayPlugin implements Plugin, NativeHandler, ChatManagerListener, ChatStateListener {
private JPopupMenu popupMenu = new JPopupMenu();
@ -74,6 +75,7 @@ public class SysTrayPlugin implements Plugin, NativeHandler, ChatManagerListener
private ImageIcon typingIcon;
private TrayIcon trayIcon;
private boolean newMessage = false;
private Presence presence;
ChatMessageHandlerImpl chatMessageHandler = new ChatMessageHandlerImpl();
@Override
@ -474,7 +476,18 @@ public class SysTrayPlugin implements Plugin, NativeHandler, ChatManagerListener
@Override
public void flashWindowStopWhenFocused(Window window) {
trayIcon.setImage(availableIcon.getImage());
presence = Workspace.getInstance().getStatusBar().getPresence();
if (presence.getMode() == Presence.Mode.available) {
trayIcon.setImage(availableIcon.getImage());
} else if (presence.getMode() == Presence.Mode.away
|| presence.getMode() == Presence.Mode.xa) {
trayIcon.setImage(awayIcon.getImage());
} else if (presence.getMode() == Presence.Mode.dnd) {
trayIcon.setImage(dndIcon.getImage());
} else {
trayIcon.setImage(availableIcon.getImage());
}
newMessage = false;
chatMessageHandler.clearUnreadMessages();
}
@ -486,7 +499,17 @@ public class SysTrayPlugin implements Plugin, NativeHandler, ChatManagerListener
@Override
public void stopFlashing(Window window) {
trayIcon.setImage(availableIcon.getImage());
presence = Workspace.getInstance().getStatusBar().getPresence();
if (presence.getMode() == Presence.Mode.available) {
trayIcon.setImage(availableIcon.getImage());
} else if (presence.getMode() == Presence.Mode.away
|| presence.getMode() == Presence.Mode.xa) {
trayIcon.setImage(awayIcon.getImage());
} else if (presence.getMode() == Presence.Mode.dnd) {
trayIcon.setImage(dndIcon.getImage());
} else {
trayIcon.setImage(availableIcon.getImage());
}
newMessage = false;
chatMessageHandler.clearUnreadMessages();
}
@ -499,17 +522,25 @@ public class SysTrayPlugin implements Plugin, NativeHandler, ChatManagerListener
}
@Override
public void stateChanged(Chat chat, ChatState state) {
public void stateChanged(Chat chat, ChatState state) {
presence = Workspace.getInstance().getStatusBar().getPresence();
if (ChatState.composing.equals(state)) {
changeSysTrayIcon();
changeSysTrayIcon();
} else {
if (!newMessage)
trayIcon.setImage(availableIcon.getImage());
else {
trayIcon.setImage(newMessageIcon.getImage());
}
if (!newMessage) {
if (presence.getMode() == Presence.Mode.available) {
trayIcon.setImage(availableIcon.getImage());
} else if (presence.getMode() == Presence.Mode.away
|| presence.getMode() == Presence.Mode.xa) {
trayIcon.setImage(awayIcon.getImage());
} else if (presence.getMode() == Presence.Mode.dnd) {
trayIcon.setImage(dndIcon.getImage());
} else {
trayIcon.setImage(newMessageIcon.getImage());
}
}
}
}
}
@Override
public void chatCreated(Chat chat, boolean isLocal) {