Implemented changes requested by @delvh
This commit is contained in:
@ -140,6 +140,13 @@ public class LocalDB {
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link Sync} object filled with the changes that occurred to the
|
||||
* local database since the last synchronization.
|
||||
*
|
||||
* @param userId the ID of the user that is synchronized by this client
|
||||
* @return {@link Sync} object filled with the current changes
|
||||
*/
|
||||
public Sync fillSync(long userId) {
|
||||
addWaitingMessagesToSync();
|
||||
|
||||
@ -150,6 +157,11 @@ public class LocalDB {
|
||||
return sync;
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the changes carried by a {@link Sync} object to the local database
|
||||
*
|
||||
* @param returnSync the {@link Sync} object to apply
|
||||
*/
|
||||
public void applySync(Sync returnSync) {
|
||||
for (int i = 0; i < returnSync.getMessages().size(); i++) {
|
||||
|
||||
@ -173,50 +185,33 @@ public class LocalDB {
|
||||
EventBus.getInstance().dispatch(new MessageCreationEvent(returnSync.getMessages().get(i)));
|
||||
} else {
|
||||
// Update Messages in localDB to state RECEIVED
|
||||
for (int j = 0; j < getChats().size(); j++) {
|
||||
if (getChats().get(j).getRecipient().getID() == returnSync.getMessages().get(i).getMetadata().getRecipient()) {
|
||||
for (int k = 0; k < getChats().get(j).getModel().getSize(); k++) {
|
||||
if (getChats().get(j).getModel().get(k).getMetadata().getMessageId() == returnSync.getMessages()
|
||||
.get(i)
|
||||
.getMetadata()
|
||||
.getMessageId()) {
|
||||
// Update Message in LocalDB
|
||||
getChats().get(j)
|
||||
.getModel()
|
||||
.get(k)
|
||||
.getMetadata()
|
||||
.setState(returnSync.getMessages().get(j).getMetadata().getState());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (Chat chat : getChats())
|
||||
if (chat.getRecipient().getID() == returnSync.getMessages().get(i).getMetadata().getRecipient())
|
||||
for (int j = 0; j < chat.getModel().getSize(); j++)
|
||||
if (chat.getModel().get(j).getMetadata().getMessageId() == returnSync.getMessages()
|
||||
.get(i)
|
||||
.getMetadata()
|
||||
.getMessageId())
|
||||
chat.getModel().get(j).getMetadata().setState(returnSync.getMessages().get(i).getMetadata().getState());
|
||||
}
|
||||
break;
|
||||
case READ:
|
||||
// Update local Messages to state READ
|
||||
logger.info("Message with ID: " + returnSync.getMessages().get(i).getMetadata().getMessageId()
|
||||
+ "was initialized to be set to READ in localDB.");
|
||||
for (int j = 0; j < getChats().size(); j++) {
|
||||
if (getChats().get(j).getRecipient().getID() == returnSync.getMessages().get(i).getMetadata().getRecipient()) {
|
||||
logger.info("Chat with: " + getChats().get(j).getRecipient().getID() + "was selected.");
|
||||
for (int k = 0; k < getChats().get(j).getModel().getSize(); k++) {
|
||||
if (getChats().get(j).getModel().get(k).getMetadata().getMessageId() == returnSync.getMessages()
|
||||
for (Chat chat : getChats())
|
||||
if (chat.getRecipient().getID() == returnSync.getMessages().get(i).getMetadata().getRecipient()) {
|
||||
logger.info("Chat with: " + chat.getRecipient().getID() + "was selected.");
|
||||
for (int k = 0; k < chat.getModel().getSize(); k++)
|
||||
if (chat.getModel().get(k).getMetadata().getMessageId() == returnSync.getMessages()
|
||||
.get(i)
|
||||
.getMetadata()
|
||||
.getMessageId()) {
|
||||
logger.info("Message with ID: " + getChats().get(j).getModel().get(k).getMetadata().getMessageId()
|
||||
+ "was selected.");
|
||||
getChats().get(j)
|
||||
.getModel()
|
||||
.get(k)
|
||||
.getMetadata()
|
||||
.setState(returnSync.getMessages().get(i).getMetadata().getState());
|
||||
logger.info(
|
||||
"Message State is now: " + getChats().get(j).getModel().get(k).getMetadata().getState().toString());
|
||||
logger.info("Message with ID: " + chat.getModel().get(k).getMetadata().getMessageId() + "was selected.");
|
||||
chat.getModel().get(k).getMetadata().setState(returnSync.getMessages().get(i).getMetadata().getState());
|
||||
logger.info("Message State is now: " + chat.getModel().get(k).getMetadata().getState());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -242,9 +237,9 @@ public class LocalDB {
|
||||
* @since Envoy v0.1-alpha
|
||||
*/
|
||||
public void addUnreadMessagesToLocalDB() {
|
||||
for(Message message : unreadMessagesSync.getMessages())
|
||||
for(Chat chat : getChats())
|
||||
if(message.getMetadata().getSender() == chat.getRecipient().getID()) {
|
||||
for (Message message : unreadMessagesSync.getMessages())
|
||||
for (Chat chat : getChats())
|
||||
if (message.getMetadata().getSender() == chat.getRecipient().getID()) {
|
||||
chat.appendMessage(message);
|
||||
break;
|
||||
}
|
||||
|
@ -257,6 +257,7 @@ public class ChatWindow extends JFrame {
|
||||
private void postMessage(JList<Message> messageList) {
|
||||
if (!client.hasRecipient()) {
|
||||
JOptionPane.showMessageDialog(this, "Please select a recipient!", "Cannot send message", JOptionPane.INFORMATION_MESSAGE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!messageEnterTextArea.getText().isEmpty()) try {
|
||||
|
Reference in New Issue
Block a user