@Nullable private IDEtalkEvent createPresenceChangeEvent(User user, UserPresence newPresence) { UserPresence oldPresence = getUserPresence(user); if (!newPresence.equals(oldPresence)) { if (newPresence.isOnline() ^ oldPresence.isOnline()) { return newPresence.isOnline() ? new UserEvent.Online(user) : new UserEvent.Offline(user); } else { return new UserEvent.Updated( user, PRESENCE, oldPresence.getPresenceMode(), newPresence.getPresenceMode()); } } return null; }
@Override public void setOwnPresence(UserPresence userPresence) { if (isOnline() && !userPresence.isOnline()) { myFacade.disconnect(); } else if (!isOnline() && userPresence.isOnline()) { myUI.connectAndLogin(null); } if (isOnline() && presenceModeChanged(userPresence.getPresenceMode())) { myFacade.setOnlinePresence(userPresence); myPresenceMode = userPresence.getPresenceMode(); } }