Fixed chat loading from LocalDB into messagList
This commit is contained in:
		| @@ -40,6 +40,9 @@ public final class Chat implements Serializable { | ||||
| 	 */ | ||||
| 	public Chat(User recipient) { this.recipient = recipient; } | ||||
|  | ||||
| 	@Override | ||||
| 	public String toString() { return String.format("Chat[recipient=%s,messages=%d]", recipient, messages.size()); } | ||||
|  | ||||
| 	/** | ||||
| 	 * Sets the status of all chat messages received from the recipient to | ||||
| 	 * {@code READ} starting from the bottom and stopping once a read message is | ||||
|   | ||||
| @@ -73,7 +73,7 @@ public final class ChatSceneController { | ||||
| 	@FXML | ||||
| 	private void userListClicked() { | ||||
| 		final User user = userList.getSelectionModel().getSelectedItem(); | ||||
| 		if (user != null && (currentChat == null || user != currentChat.getRecipient())) { | ||||
| 		if (user != null && (currentChat == null || user.getID() != currentChat.getRecipient().getID())) { | ||||
| 			contactLabel.setText(user.getName()); | ||||
|  | ||||
| 			// Swap observable list | ||||
| @@ -87,7 +87,8 @@ public final class ChatSceneController { | ||||
| 			// Load the chat or create a new one and add it to the LocalDB | ||||
| 			currentChat = localDB.getChats() | ||||
| 				.stream() | ||||
| 				.filter(c -> c.getRecipient() == user) | ||||
| 				.filter(c -> c.getRecipient().getID() == user | ||||
| 					.getID()) | ||||
| 				.findAny() | ||||
| 				.orElseGet(() -> { var chat = new Chat(user); localDB.getChats().add(chat); return chat; }); | ||||
| 			messageList.setItems(FXCollections.observableArrayList(currentChat.getMessages())); | ||||
| @@ -125,7 +126,8 @@ public final class ChatSceneController { | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Sends a message to the server. | ||||
| 	 * Sends a message to the server and appends it to the current chat. If all | ||||
| 	 * message IDs have been used, a new ID generator is requested. | ||||
| 	 * | ||||
| 	 * @param message the message to send | ||||
| 	 * @since Envoy Client v0.1-beta | ||||
| @@ -140,7 +142,7 @@ public final class ChatSceneController { | ||||
| 			messageList.getItems().add(message); | ||||
|  | ||||
| 			// Request a new ID generator if all IDs were used | ||||
| 			if (!localDB.getIDGenerator().hasNext()) client.requestIdGenerator(); | ||||
| 			if (!localDB.getIDGenerator().hasNext() && client.isOnline()) client.requestIdGenerator(); | ||||
|  | ||||
| 		} catch (IOException e) { | ||||
| 			logger.log(Level.SEVERE, "Error sending message", e); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user