Fix unread message counter
A bug remains when the total status of a group message is SENT, but the individual status for the client user is RECEIVED. In this case, the counter should be incremented but isn't.
This commit is contained in:
		@@ -138,7 +138,13 @@ public final class ChatScene implements Restorable {
 | 
			
		||||
		// Listen to received messages
 | 
			
		||||
		eventBus.register(MessageCreationEvent.class, e -> {
 | 
			
		||||
			final var message = e.get();
 | 
			
		||||
			localDB.getChat(message instanceof GroupMessage ? message.getRecipientID() : message.getSenderID()).ifPresent(chat -> {
 | 
			
		||||
 | 
			
		||||
			// The sender of the message is the recipient of the chat
 | 
			
		||||
			// Exceptions: this user is the sender (sync) or group message (group is
 | 
			
		||||
			// recipient)
 | 
			
		||||
			final long recipientID = message instanceof GroupMessage || message.getSenderID() == localDB.getUser().getID() ? message.getRecipientID()
 | 
			
		||||
					: message.getSenderID();
 | 
			
		||||
			localDB.getChat(recipientID).ifPresent(chat -> {
 | 
			
		||||
				chat.insert(message);
 | 
			
		||||
				if (chat.equals(currentChat)) {
 | 
			
		||||
					try {
 | 
			
		||||
@@ -147,8 +153,10 @@ public final class ChatScene implements Restorable {
 | 
			
		||||
						logger.log(Level.WARNING, "Could not read current chat: ", e1);
 | 
			
		||||
					}
 | 
			
		||||
					Platform.runLater(() -> { messageList.refresh(); scrollToMessageListEnd(); });
 | 
			
		||||
				} else if (message.getRecipientID() == chat.getRecipient().getID() && message.getStatus() == RECEIVED) chat.incrementUnreadAmount();
 | 
			
		||||
				// Moving chat with most recent unreadMessages to the top
 | 
			
		||||
					// TODO: Increment unread counter for group messages with status < RECEIVED
 | 
			
		||||
				} else if (message.getSenderID() != localDB.getUser().getID() && message.getStatus() == RECEIVED) chat.incrementUnreadAmount();
 | 
			
		||||
 | 
			
		||||
				// Move chat with most recent unread messages to the top
 | 
			
		||||
				Platform.runLater(() -> {
 | 
			
		||||
					chatList.getItems().remove(chat);
 | 
			
		||||
					chatList.getItems().add(0, chat);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user