diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewRepository.kt index d752f1da24..092cd33cbc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewRepository.kt @@ -60,20 +60,28 @@ class MediaPreviewRepository { val frontLimit: Int = limit / 2 val windowStart = if (startingRow >= frontLimit) startingRow - frontLimit else 0 - itemPosition = startingRow - windowStart - cursor.moveToPosition(windowStart) for (i in 0..limit) { val element = MediaTable.MediaRecord.from(cursor) if (element.attachment?.transferState == AttachmentTable.TRANSFER_PROGRESS_DONE || element.attachment?.transferState == AttachmentTable.TRANSFER_PROGRESS_STARTED) { mediaRecords.add(element) + + if (startingAttachmentId.id == cursor.requireLong(AttachmentTable.ID)) { + itemPosition = mediaRecords.lastIndex + } } + if (!cursor.moveToNext()) { break } } + + if (itemPosition == -1) { + Log.w(TAG, "Unable to find target image for $startingAttachmentId") + } } + val messageIds = mediaRecords.mapNotNull { it.attachment?.mmsId }.toSet() val messages: Map = SignalDatabase.messages.getMessages(messageIds) .map { it as MmsMessageRecord }