From 3bbaae4589de56da9ab09360aa28a3cd12198471 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Tue, 9 Oct 2018 14:29:47 +0300 Subject: MessageReadEvent refactoring --- .../main/java/com/juick/server/ServerManager.java | 35 +++++++++++----------- 1 file changed, 17 insertions(+), 18 deletions(-) (limited to 'juick-server/src/main/java/com/juick/server/ServerManager.java') diff --git a/juick-server/src/main/java/com/juick/server/ServerManager.java b/juick-server/src/main/java/com/juick/server/ServerManager.java index fce92705..cbef33a5 100644 --- a/juick-server/src/main/java/com/juick/server/ServerManager.java +++ b/juick-server/src/main/java/com/juick/server/ServerManager.java @@ -215,26 +215,25 @@ public class ServerManager implements NotificationListener { @Override public void processMessageReadEvent(MessageReadEvent messageReadEvent) { - List users = messageReadEvent.getUsers(); + User user = messageReadEvent.getUser(); Message source = messageReadEvent.getMessage(); - users.forEach(userTo -> { - logger.info("Message read event from {} for {}", userTo.getName(), source.getMid()); - wsHandler.getClients().stream().filter(c -> - (!c.legacy && c.visitor.getUid() == userTo.getUid()) || c.visitor.getName().equals(serviceUser) - ).forEach(u -> { - Message serviceMessage = new Message(); - serviceMessage.setService(true); - serviceMessage.setUser(userTo); - serviceMessage.setMid(source.getMid()); - serviceMessage.setUnread(false); - try { - u.sendMessage(new TextMessage(jsonMapper.writeValueAsString(serviceMessage))); - } catch (IOException e) { - logger.error("JSON error", e); - } - }); + + logger.info("Message read event from {} for {}", user.getName(), source.getMid()); + Message serviceMessage = new Message(); + serviceMessage.setService(true); + serviceMessage.setUser(user); + serviceMessage.setMid(source.getMid()); + serviceMessage.setUnread(false); + wsHandler.getClients().stream().filter(c -> + (!c.legacy && c.visitor == user) || c.visitor.equals(serviceUser) + ).forEach(u -> { + try { + u.sendMessage(new TextMessage(jsonMapper.writeValueAsString(serviceMessage))); + } catch (IOException e) { + logger.error("JSON error", e); + } }); - sendSseEvent(source, Collections.singletonList(serviceUser)); + sendSseEvent(serviceMessage, Collections.singletonList(serviceUser)); } @Override -- cgit v1.2.3