aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java')
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java35
1 files changed, 17 insertions, 18 deletions
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<Message> 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<Message> 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);