diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java index 2396fb7fd..d6ac5bf8c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java @@ -1500,7 +1500,8 @@ public final class MessageContentProcessor { try { RecipientId storyAuthorRecipient = RecipientId.from(storyContext.getAuthorServiceId(), null); ParentStoryId parentStoryId; - QuoteModel quoteModel = null; + QuoteModel quoteModel = null; + long expiresInMillis = 0; try { MessageId storyMessageId = database.getStoryId(storyAuthorRecipient, storyContext.getSentTimestamp()); @@ -1509,8 +1510,9 @@ public final class MessageContentProcessor { } else if (SignalDatabase.storySends().canReply(senderRecipient.getId(), storyContext.getSentTimestamp())) { MmsMessageRecord story = (MmsMessageRecord) database.getMessageRecord(storyMessageId.getId()); - parentStoryId = new ParentStoryId.DirectReply(storyMessageId.getId()); - quoteModel = new QuoteModel(storyContext.getSentTimestamp(), storyAuthorRecipient, "", false, story.getSlideDeck().asAttachments(), Collections.emptyList()); + parentStoryId = new ParentStoryId.DirectReply(storyMessageId.getId()); + quoteModel = new QuoteModel(storyContext.getSentTimestamp(), storyAuthorRecipient, "", false, story.getSlideDeck().asAttachments(), Collections.emptyList()); + expiresInMillis = TimeUnit.SECONDS.toMillis(message.getExpiresInSeconds()); } else { warn(content.getTimestamp(), "Story has reactions disabled. Dropping reaction."); return; @@ -1528,7 +1530,7 @@ public final class MessageContentProcessor { parentStoryId, true, -1, - 0, + expiresInMillis, false, false, content.isNeedsReceipt(), @@ -1570,7 +1572,9 @@ public final class MessageContentProcessor { try { RecipientId storyAuthorRecipient = RecipientId.from(storyContext.getAuthorServiceId(), null); ParentStoryId parentStoryId; - QuoteModel quoteModel = null; + QuoteModel quoteModel = null; + long expiresInMillis = 0L; + try { MessageId storyMessageId = database.getStoryId(storyAuthorRecipient, storyContext.getSentTimestamp()); MmsMessageRecord story = (MmsMessageRecord) database.getMessageRecord(storyMessageId.getId()); @@ -1580,8 +1584,9 @@ public final class MessageContentProcessor { if (message.getGroupContext().isPresent() ) { parentStoryId = new ParentStoryId.GroupReply(storyMessageId.getId()); } else if (groupStory || SignalDatabase.storySends().canReply(senderRecipient.getId(), storyContext.getSentTimestamp())) { - parentStoryId = new ParentStoryId.DirectReply(storyMessageId.getId()); - quoteModel = new QuoteModel(storyContext.getSentTimestamp(), groupStory ? threadRecipient.getId() : storyAuthorRecipient, "", false, story.getSlideDeck().asAttachments(), Collections.emptyList()); + parentStoryId = new ParentStoryId.DirectReply(storyMessageId.getId()); + quoteModel = new QuoteModel(storyContext.getSentTimestamp(), groupStory ? threadRecipient.getId() : storyAuthorRecipient, "", false, story.getSlideDeck().asAttachments(), Collections.emptyList()); + expiresInMillis = TimeUnit.SECONDS.toMillis(message.getExpiresInSeconds()); } else { warn(content.getTimestamp(), "Story has replies disabled. Dropping reply."); return; @@ -1599,7 +1604,7 @@ public final class MessageContentProcessor { parentStoryId, false, -1, - 0, + expiresInMillis, false, false, content.isNeedsReceipt(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyRepository.kt index 3b8520e0c..854e1f13d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyRepository.kt @@ -14,6 +14,7 @@ import org.thoughtcrime.securesms.mms.QuoteModel import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.sms.MessageSender +import java.util.concurrent.TimeUnit class StoryDirectReplyRepository(context: Context) { @@ -49,7 +50,7 @@ class StoryDirectReplyRepository(context: Context) { emptyList(), System.currentTimeMillis(), 0, - 0L, + TimeUnit.SECONDS.toMillis(recipient.expiresInSeconds.toLong()), false, 0, StoryType.NONE,