Issue #2938 - Fix site/role change logic for messages
Change-Id: I5a08020f28b986c7815bb5ab2b71a34d9e105500 Former-commit-id:169ad502de
[formerly 9ffc540c21245b308334040234be03d78a501656] Former-commit-id:8967ddd94a
This commit is contained in:
parent
311337f5fc
commit
66181ca3a5
1 changed files with 57 additions and 23 deletions
|
@ -73,6 +73,7 @@ import com.raytheon.uf.viz.core.icon.IconUtil;
|
||||||
* having the color update to reflect the change.
|
* having the color update to reflect the change.
|
||||||
* Mar 24, 2014 2936 mpduff Remove join alerts from feed view.
|
* Mar 24, 2014 2936 mpduff Remove join alerts from feed view.
|
||||||
* Mar 25, 2014 2938 mpduff Show status message for site and role changes.
|
* Mar 25, 2014 2938 mpduff Show status message for site and role changes.
|
||||||
|
* Apr 01, 2014 2938 mpduff Update logic for site and role changes.
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -414,34 +415,22 @@ public class SessionFeedView extends SessionView {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Object roleObj = presence.getProperty(SiteConfigInformation.ROLE_NAME);
|
String siteName = getSiteName(presence);
|
||||||
String roleName = roleObj == null ? "" : roleObj.toString();
|
|
||||||
Object siteObj = presence.getProperty(SiteConfigInformation.SITE_NAME);
|
|
||||||
String siteName = siteObj == null ? "" : siteObj.toString();
|
|
||||||
String user = participant.getName();
|
|
||||||
|
|
||||||
// only show sites you care about
|
// only show sites you care about
|
||||||
if (enabledSites.contains(siteName)
|
if (enabledSites.contains(siteName)
|
||||||
|| userEnabledSites.contains(siteName)) {
|
|| userEnabledSites.contains(siteName)) {
|
||||||
if (!enabledUsers.containsKey(user)) {
|
String user = participant.getName();
|
||||||
// Add user
|
|
||||||
enabledUsers.put(user, presence);
|
|
||||||
if (!presence.isAway()) {
|
|
||||||
// Send message
|
|
||||||
StringBuilder message = getMessage(roleName, siteName, user);
|
|
||||||
sendSystemMessage(message);
|
|
||||||
}
|
|
||||||
} else if (!presence.isAway()) {
|
|
||||||
Presence prev = enabledUsers.get(user);
|
Presence prev = enabledUsers.get(user);
|
||||||
if (!prev.getProperty(SiteConfigInformation.ROLE_NAME)
|
|
||||||
.toString().equals(roleName)
|
String roleName = getRoleName(presence);
|
||||||
|| !prev.getProperty(SiteConfigInformation.SITE_NAME)
|
if (presence.isAvailable()) {
|
||||||
.toString().equals(siteName)) {
|
if (prev == null || hasPresenceChanged(prev, presence)) {
|
||||||
// Send message
|
|
||||||
StringBuilder message = getMessage(roleName, siteName, user);
|
StringBuilder message = getMessage(roleName, siteName, user);
|
||||||
sendSystemMessage(message);
|
sendSystemMessage(message);
|
||||||
enabledUsers.put(user, presence);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enabledUsers.put(user, presence);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -453,6 +442,51 @@ public class SessionFeedView extends SessionView {
|
||||||
refreshParticipantList();
|
refreshParticipantList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if the user's presence has changed.
|
||||||
|
*
|
||||||
|
* @param prev
|
||||||
|
* The previous Presence object
|
||||||
|
* @param current
|
||||||
|
* The current Presence object
|
||||||
|
* @return true if the presence has changed
|
||||||
|
*/
|
||||||
|
private boolean hasPresenceChanged(Presence prev, Presence current) {
|
||||||
|
if (!getRoleName(prev).equals(getRoleName(current))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!getSiteName(prev).equals(getSiteName(current))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the role name from the presence.
|
||||||
|
*
|
||||||
|
* @param presence
|
||||||
|
* The Presence
|
||||||
|
* @return the role name for this presence
|
||||||
|
*/
|
||||||
|
private String getRoleName(Presence presence) {
|
||||||
|
Object roleObj = presence.getProperty(SiteConfigInformation.ROLE_NAME);
|
||||||
|
return roleObj == null ? "" : roleObj.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the site name from the presence.
|
||||||
|
*
|
||||||
|
* @param presence
|
||||||
|
* The Presence
|
||||||
|
* @return the site name for this presence
|
||||||
|
*/
|
||||||
|
private String getSiteName(Presence presence) {
|
||||||
|
Object siteObj = presence.getProperty(SiteConfigInformation.SITE_NAME);
|
||||||
|
return siteObj == null ? "" : siteObj.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the status message.
|
* Get the status message.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue