From 132b27adeef3ab4d305facda7dd035015b00766f Mon Sep 17 00:00:00 2001 From: steckbrief Date: Sat, 5 May 2018 20:28:04 +0200 Subject: introduces new message state model --- .../conversationsplus/utils/ConversationUtil.java | 35 +++++++++++----------- 1 file changed, 17 insertions(+), 18 deletions(-) (limited to 'src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java') diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java index 709b3f20..616cf962 100644 --- a/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java +++ b/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java @@ -8,6 +8,7 @@ import de.thedevstack.conversationsplus.entities.Conversation; import de.thedevstack.conversationsplus.entities.FileParams; import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.enums.FileStatus; +import de.thedevstack.conversationsplus.enums.MessageStatus; import de.thedevstack.conversationsplus.exceptions.FileCopyException; import de.thedevstack.conversationsplus.persistance.FileBackend; import de.thedevstack.conversationsplus.ui.UiCallback; @@ -17,18 +18,22 @@ import de.thedevstack.conversationsplus.ui.UiCallback; */ public class ConversationUtil { + public static void markMessagesAsDisplayedUpToMessage(Message message) { + Conversation conversation = message.getConversation(); + + while (null != message && (MessageStatus.RECEIVED == message.getMessageStatus() || MessageStatus.TRANSMITTED == message.getMessageStatus())) { + MessageUtil.setAndSaveMessageStatus(message, MessageStatus.DISPLAYED); + + message = conversation.getMessageBefore(message); + } + } + public static void attachLocationToConversation(final Conversation conversation, final Uri uri, final UiCallback callback) { - int encryption = conversation.getNextEncryption(); - if (encryption == Message.ENCRYPTION_PGP) { - encryption = Message.ENCRYPTION_DECRYPTED; - } - Message message = new Message(conversation, uri.toString(), encryption); - if (conversation.getNextCounterpart() != null) { - message.setCounterpart(conversation.getNextCounterpart()); - } - if (encryption == Message.ENCRYPTION_DECRYPTED) { + Message message = MessageUtil.createOutgoingMessage(conversation, uri.toString()); + + if (message.getEncryption() == Message.ENCRYPTION_DECRYPTED) { PgpEngine.getInstance().encrypt(message, callback); } else { callback.success(message); @@ -38,18 +43,12 @@ public class ConversationUtil { public static void attachFileToConversation(final Conversation conversation, final Uri uri, final UiCallback callback) { - final Message message; - if (conversation.getNextEncryption() == Message.ENCRYPTION_PGP) { - message = new Message(conversation, "", Message.ENCRYPTION_DECRYPTED); - } else { - message = new Message(conversation, "", conversation.getNextEncryption()); - } - message.setCounterpart(conversation.getNextCounterpart()); - //message.setType(Message.TYPE_FILE); + final Message message = MessageUtil.createOutgoingMessage(conversation, ""); + if (null == message.getFileParams()) { message.setFileParams(new FileParams()); } - message.getFileParams().setFileStatus(FileStatus.NEEDS_UPLOAD); + MessageUtil.setFileStatus(message, FileStatus.NEEDS_UPLOAD); String path = FileUtils.getPath(uri); if (path != null) { message.getFileParams().setPath(path); -- cgit v1.2.3