mirror of
https://github.com/igniterealtime/Spark.git
synced 2026-08-18 02:56:24 +00:00
refactor getIconFromPresence(): newer return null icon
This commit is contained in:
@ -192,54 +192,40 @@ public class PresenceManager {
|
||||
|
||||
/**
|
||||
* Returns the icon associated with a users presence.
|
||||
*
|
||||
* @param presence the users presence.
|
||||
* @return the icon associated with it.
|
||||
*/
|
||||
public static Icon getIconFromPresence(Presence presence) {
|
||||
if (isInvisible(presence)) {
|
||||
if (isInvisible(presence)) {
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.CLEAR_BALL_ICON);
|
||||
}
|
||||
|
||||
// Handle offline presence
|
||||
if (!presence.isAvailable()) {
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.CLEAR_BALL_ICON);
|
||||
}
|
||||
|
||||
Presence.Mode presenceMode = presence.getMode();
|
||||
if (presenceMode == null) {
|
||||
presenceMode = Presence.Mode.available;
|
||||
}
|
||||
|
||||
Icon icon = null;
|
||||
|
||||
if (presenceMode.equals(Presence.Mode.available)) {
|
||||
icon = SparkRes.getImageIcon(SparkRes.Icon.GREEN_BALL);
|
||||
}
|
||||
else if (presenceMode.equals(Presence.Mode.chat)) {
|
||||
icon = SparkRes.getImageIcon(SparkRes.Icon.FREE_TO_CHAT_IMAGE);
|
||||
}
|
||||
else if (isOnPhone(presence)) {
|
||||
icon = SparkRes.getImageIcon(SparkRes.Icon.ON_PHONE_IMAGE);
|
||||
}
|
||||
else if (presenceMode.equals(Presence.Mode.away)) {
|
||||
icon = SparkRes.getImageIcon(SparkRes.Icon.IM_AWAY);
|
||||
}
|
||||
else if (presenceMode.equals(Presence.Mode.dnd)) {
|
||||
icon = SparkRes.getImageIcon(SparkRes.Icon.IM_DND);
|
||||
}
|
||||
else if (presenceMode.equals(Presence.Mode.xa)) {
|
||||
icon = SparkRes.getImageIcon(SparkRes.Icon.IM_XA);
|
||||
}
|
||||
|
||||
// Check For ContactItem handlers
|
||||
Icon handlerIcon = SparkManager.getChatManager().getTabIconForContactHandler(presence);
|
||||
if (handlerIcon != null) {
|
||||
icon = handlerIcon;
|
||||
return handlerIcon;
|
||||
}
|
||||
if (isOnPhone(presence)) {
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.ON_PHONE_IMAGE);
|
||||
}
|
||||
|
||||
|
||||
return icon;
|
||||
Presence.Mode presenceMode = presence.getMode();
|
||||
switch (presenceMode) {
|
||||
case available:
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.GREEN_BALL);
|
||||
case chat:
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.FREE_TO_CHAT_IMAGE);
|
||||
case away:
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.IM_AWAY);
|
||||
case dnd:
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.IM_DND);
|
||||
case xa:
|
||||
return SparkRes.getImageIcon(SparkRes.Icon.IM_XA);
|
||||
default:
|
||||
// never happens
|
||||
throw new IllegalStateException("Unexpected value: " + presenceMode);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -258,7 +244,7 @@ public class PresenceManager {
|
||||
}
|
||||
return presence.getStatus() != null &&
|
||||
presence.getStatus().contains(Res.getString("status.on.phone")) &&
|
||||
presenceMode.equals(Presence.Mode.away);
|
||||
presenceMode == Presence.Mode.away;
|
||||
}
|
||||
|
||||
public static boolean isInvisible(Presence presence) {
|
||||
|
||||
@ -53,6 +53,8 @@ import org.jxmpp.jid.BareJid;
|
||||
import static java.util.Objects.requireNonNull;
|
||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
||||
import static org.apache.commons.lang3.StringUtils.trimToEmpty;
|
||||
import static org.jivesoftware.smack.roster.packet.RosterPacket.ItemType.from;
|
||||
import static org.jivesoftware.smack.roster.packet.RosterPacket.ItemType.none;
|
||||
|
||||
/**
|
||||
* Represent a single contact within the <code>ContactList</code>.
|
||||
@ -314,34 +316,30 @@ public class ContactItem extends JPanel {
|
||||
}
|
||||
|
||||
String status = presence.getStatus();
|
||||
Icon statusIcon = SparkRes.getImageIcon(SparkRes.Icon.GREEN_BALL);
|
||||
boolean isAvailable = false;
|
||||
if (status == null && presence.isAvailable()) {
|
||||
Presence.Mode mode = presence.getMode();
|
||||
if (mode == Presence.Mode.available) {
|
||||
status = Res.getString("status.online");
|
||||
isAvailable = true;
|
||||
}
|
||||
else if (mode == Presence.Mode.away) {
|
||||
status = Res.getString("status.away");
|
||||
statusIcon = SparkRes.getImageIcon(SparkRes.Icon.IM_AWAY);
|
||||
}
|
||||
else if (mode == Presence.Mode.chat) {
|
||||
status = Res.getString("status.free.to.chat");
|
||||
}
|
||||
else if (mode == Presence.Mode.dnd) {
|
||||
status = Res.getString("status.do.not.disturb");
|
||||
statusIcon = SparkRes.getImageIcon(SparkRes.Icon.IM_AWAY);
|
||||
}
|
||||
else if (mode == Presence.Mode.xa) {
|
||||
status = Res.getString("status.extended.away");
|
||||
statusIcon = SparkRes.getImageIcon(SparkRes.Icon.IM_XA);
|
||||
switch (presence.getMode()) {
|
||||
case available:
|
||||
status = Res.getString("status.online");
|
||||
isAvailable = true;
|
||||
break;
|
||||
case away:
|
||||
status = Res.getString("status.away");
|
||||
break;
|
||||
case chat:
|
||||
status = Res.getString("status.free.to.chat");
|
||||
break;
|
||||
case dnd:
|
||||
status = Res.getString("status.do.not.disturb");
|
||||
break;
|
||||
case xa:
|
||||
status = Res.getString("status.extended.away");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Sets status icon and text based on presence
|
||||
if (presence.isAway()) {
|
||||
statusIcon = SparkRes.getImageIcon(SparkRes.Icon.IM_AWAY);
|
||||
}
|
||||
else if (presence.isAvailable()) {
|
||||
isAvailable = true;
|
||||
@ -352,7 +350,7 @@ public class ContactItem extends JPanel {
|
||||
|
||||
Roster roster = SparkManager.getRoster();
|
||||
RosterEntry entry = roster.getEntry(getJid());
|
||||
if (entry != null && (entry.getType() == RosterPacket.ItemType.none || entry.getType() == RosterPacket.ItemType.from)
|
||||
if (entry != null && (entry.getType() == none || entry.getType() == from)
|
||||
&& entry.isSubscriptionPending()) {
|
||||
// Do not move out of group.
|
||||
setIcon(SparkRes.getImageIcon(SparkRes.Icon.SMALL_QUESTION));
|
||||
@ -374,16 +372,11 @@ public class ContactItem extends JPanel {
|
||||
}
|
||||
|
||||
Icon sIcon = PresenceManager.getIconFromPresence(presence);
|
||||
setIcon(sIcon != null ? sIcon : statusIcon);
|
||||
setIcon(sIcon);
|
||||
if (status != null) {
|
||||
setStatus(status);
|
||||
}
|
||||
|
||||
if (PresenceManager.isOnPhone(presence)) {
|
||||
statusIcon = SparkRes.getImageIcon(SparkRes.Icon.ON_PHONE_IMAGE);
|
||||
setIcon(statusIcon);
|
||||
}
|
||||
|
||||
// Always change nickname label to black.
|
||||
getNicknameLabel().setForeground((Color)UIManager.get("ContactItemNickname.foreground"));
|
||||
|
||||
|
||||
@ -51,20 +51,22 @@ public abstract class SparkTabHandler {
|
||||
}
|
||||
else {
|
||||
Presence.Mode mode = presence.getMode();
|
||||
if (mode == Presence.Mode.available || mode == null) {
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_AVAILABLE_STALE_IMAGE));
|
||||
}
|
||||
else if (mode == Presence.Mode.away) {
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_AWAY_STALE_IMAGE));
|
||||
}
|
||||
else if (mode == Presence.Mode.chat) {
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_FREE_CHAT_STALE_IMAGE));
|
||||
}
|
||||
else if (mode == Presence.Mode.dnd) {
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_DND_STALE_IMAGE));
|
||||
}
|
||||
else if (mode == Presence.Mode.xa) {
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_XA_STALE_IMAGE));
|
||||
switch (mode) {
|
||||
case available:
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_AVAILABLE_STALE_IMAGE));
|
||||
break;
|
||||
case away:
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_AWAY_STALE_IMAGE));
|
||||
break;
|
||||
case chat:
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_FREE_CHAT_STALE_IMAGE));
|
||||
break;
|
||||
case dnd:
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_DND_STALE_IMAGE));
|
||||
break;
|
||||
case xa:
|
||||
tab.setIcon(SparkRes.getImageIcon(SparkRes.Icon.IM_XA_STALE_IMAGE));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -261,9 +261,6 @@ public class GroupChatParticipantList extends JPanel {
|
||||
icon = getIconForRole(role, affiliation);
|
||||
} else {
|
||||
icon = PresenceManager.getIconFromPresence(presence);
|
||||
if (icon == null) {
|
||||
icon = SparkRes.getImageIcon(SparkRes.Icon.GREEN_BALL);
|
||||
}
|
||||
}
|
||||
|
||||
if (!exists(nickname)) {
|
||||
|
||||
@ -180,9 +180,7 @@ public class StatusBar extends JPanel implements VCardListener {
|
||||
protected void updatePresence() {
|
||||
setStatus(currentPresence.getStatus());
|
||||
final Icon icon = PresenceManager.getIconFromPresence(currentPresence);
|
||||
if (icon != null) {
|
||||
statusPanel.setIcon(icon);
|
||||
}
|
||||
statusPanel.setIcon(icon);
|
||||
}
|
||||
|
||||
public void showPopup(MouseEvent e, JLabel lblStatus) {
|
||||
|
||||
@ -315,9 +315,6 @@ public final class OnlineAgents extends JPanel {
|
||||
}
|
||||
else if (presence.getType() == Presence.Type.available) {
|
||||
Icon icon = PresenceManager.getIconFromPresence(presence);
|
||||
if (icon == null) {
|
||||
icon = FastpathRes.getImageIcon(FastpathRes.GREEN_BALL);
|
||||
}
|
||||
item.setIcon(icon);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user