Fix story reply thumbnails.

This commit is contained in:
Greyson Parrelli
2026-03-21 21:10:39 -04:00
committed by Cody Henthorne
parent 782c83cc4e
commit a8ba0dccca
5 changed files with 12 additions and 7 deletions

View File

@@ -47,6 +47,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.MessageExtras
import org.thoughtcrime.securesms.database.model.databaseprotos.PinnedMessage
import org.thoughtcrime.securesms.database.model.databaseprotos.PollTerminate
import org.thoughtcrime.securesms.database.model.toBodyRangeList
import org.thoughtcrime.securesms.database.withAttachments
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.groups.BadGroupIdException
import org.thoughtcrime.securesms.groups.GroupAccessControl
@@ -458,7 +459,7 @@ object DataMessageProcessor {
if (groupId != null) {
parentStoryId = GroupReply(storyId)
} else if (SignalDatabase.storySends.canReply(senderRecipientId, sentTimestamp)) {
val story = SignalDatabase.messages.getMessageRecord(storyId) as MmsMessageRecord
val story = SignalDatabase.messages.getMessageRecord(storyId).withAttachments() as MmsMessageRecord
var displayText = ""
var bodyRanges: BodyRangeList? = null
@@ -771,7 +772,7 @@ object DataMessageProcessor {
storyMessageId = SignalDatabase.messages.getStoryId(storyAuthorRecipientId, sentTimestamp)
}
val story: MmsMessageRecord = SignalDatabase.messages.getMessageRecord(storyMessageId.id) as MmsMessageRecord
val story: MmsMessageRecord = SignalDatabase.messages.getMessageRecord(storyMessageId.id).withAttachments() as MmsMessageRecord
var threadRecipient: Recipient = SignalDatabase.threads.getRecipientForThreadId(story.threadId)!!
val groupRecord: GroupRecord? = SignalDatabase.groups.getGroup(threadRecipient.id).orNull()
val groupStory: Boolean = groupRecord?.isActive ?: false

View File

@@ -51,6 +51,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.MessageExtras
import org.thoughtcrime.securesms.database.model.databaseprotos.PinnedMessage
import org.thoughtcrime.securesms.database.model.databaseprotos.PollTerminate
import org.thoughtcrime.securesms.database.model.toBodyRangeList
import org.thoughtcrime.securesms.database.withAttachments
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.groups.BadGroupIdException
import org.thoughtcrime.securesms.groups.GroupChangeBusyException
@@ -756,7 +757,7 @@ object SyncMessageProcessor {
var expiresInMillis = 0L
val storyAuthorRecipient: RecipientId = RecipientId.from(authorServiceId)
val storyMessageId: Long = SignalDatabase.messages.getStoryId(storyAuthorRecipient, sentTimestamp).id
val story: MmsMessageRecord = SignalDatabase.messages.getMessageRecord(storyMessageId) as MmsMessageRecord
val story: MmsMessageRecord = SignalDatabase.messages.getMessageRecord(storyMessageId).withAttachments() as MmsMessageRecord
val threadRecipientId: RecipientId? = SignalDatabase.threads.getRecipientForThreadId(story.threadId)?.id
val groupStory: Boolean = threadRecipientId != null && (SignalDatabase.groups.getGroup(threadRecipientId).orNull()?.isActive ?: false)
var bodyRanges: BodyRangeList? = null

View File

@@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.database.model.DistributionListId
import org.thoughtcrime.securesms.database.model.MessageRecord
import org.thoughtcrime.securesms.database.model.StoryResult
import org.thoughtcrime.securesms.database.model.StoryViewState
import org.thoughtcrime.securesms.database.withAttachments
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob
import org.thoughtcrime.securesms.keyvalue.SignalStore
@@ -74,7 +75,7 @@ class StoriesLandingRepository(context: Context) {
.take(if (recipient.isMyStory) 2 else 1)
.mapNotNull {
try {
SignalDatabase.messages.getMessageRecord(it.messageId)
SignalDatabase.messages.getMessageRecord(it.messageId).withAttachments()
} catch (e: NoSuchMessageException) {
Log.w(TAG, "Failed to find message record ${it.messageId} sent at ${it.messageSentTimestamp} for story.", e)
null

View File

@@ -7,6 +7,7 @@ import org.signal.core.util.Base64
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
import org.thoughtcrime.securesms.database.model.databaseprotos.StoryTextPost
import org.thoughtcrime.securesms.database.withAttachments
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.fonts.TextFont
import org.thoughtcrime.securesms.fonts.TextToScript
@@ -15,7 +16,7 @@ import org.thoughtcrime.securesms.fonts.TypefaceCache
class StoryTextPostRepository {
fun getRecord(recordId: Long): Single<MmsMessageRecord> {
return Single.fromCallable {
SignalDatabase.messages.getMessageRecord(recordId) as MmsMessageRecord
SignalDatabase.messages.getMessageRecord(recordId).withAttachments() as MmsMessageRecord
}.subscribeOn(Schedulers.io())
}

View File

@@ -9,6 +9,7 @@ import org.thoughtcrime.securesms.database.model.MessageRecord
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
import org.thoughtcrime.securesms.database.model.ParentStoryId
import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList
import org.thoughtcrime.securesms.database.withAttachments
import org.thoughtcrime.securesms.mms.OutgoingMessage
import org.thoughtcrime.securesms.mms.QuoteModel
import org.thoughtcrime.securesms.recipients.Recipient
@@ -22,13 +23,13 @@ class StoryDirectReplyRepository(context: Context) {
fun getStoryPost(storyId: Long): Single<MessageRecord> {
return Single.fromCallable {
SignalDatabase.messages.getMessageRecord(storyId)
SignalDatabase.messages.getMessageRecord(storyId).withAttachments()
}.subscribeOn(Schedulers.io())
}
fun send(storyId: Long, groupDirectReplyRecipientId: RecipientId?, body: CharSequence, bodyRangeList: BodyRangeList?, isReaction: Boolean): Completable {
return Completable.create { emitter ->
val message = SignalDatabase.messages.getMessageRecord(storyId) as MmsMessageRecord
val message = SignalDatabase.messages.getMessageRecord(storyId).withAttachments() as MmsMessageRecord
val (recipient, threadId) = if (groupDirectReplyRecipientId == null) {
message.fromRecipient to message.threadId
} else {