Fix archive handling of mixed error send statuses, add more tests.

This commit is contained in:
Greyson Parrelli
2025-09-10 11:42:43 -04:00
parent 236c79bfbb
commit d44bed0379
20 changed files with 10 additions and 2 deletions

View File

@@ -171,6 +171,11 @@ class ArchiveImportExportTests {
runTests { it.startsWith("chat_item_standard_message_standard_attachments_") }
}
// @Test
fun chatItemStandardMessageGroupTextOnly() {
runTests { it.startsWith("chat_item_standard_message_group_text_only_") }
}
// @Test
fun chatItemStandardMessageTextOnly() {
runTests { it.startsWith("chat_item_standard_message_text_only_") }

View File

@@ -1379,7 +1379,7 @@ private fun List<GroupReceiptTable.GroupReceiptInfo>?.toRemoteSendStatus(message
reason = SendStatus.Failed.FailureReason.NETWORK
)
}
MessageTypes.isFailedMessageType(messageRecord.type) -> {
it.status == GroupReceiptTable.STATUS_FAILED -> {
statusBuilder.failed = SendStatus.Failed(
reason = SendStatus.Failed.FailureReason.UNKNOWN
)

View File

@@ -1073,7 +1073,7 @@ class ChatItemArchiveImporter(
this.read != null -> GroupReceiptTable.STATUS_READ
this.viewed != null -> GroupReceiptTable.STATUS_VIEWED
this.skipped != null -> GroupReceiptTable.STATUS_SKIPPED
this.failed != null -> GroupReceiptTable.STATUS_UNKNOWN
this.failed != null -> GroupReceiptTable.STATUS_FAILED
else -> GroupReceiptTable.STATUS_UNKNOWN
}
}

View File

@@ -36,6 +36,7 @@ class GroupReceiptTable(context: Context?, databaseHelper: SignalDatabase?) : Da
const val STATUS_READ = 2
const val STATUS_VIEWED = 3
const val STATUS_SKIPPED = 4
const val STATUS_FAILED = 5
const val CREATE_TABLE = """
CREATE TABLE $TABLE_NAME (

View File

@@ -198,6 +198,8 @@ public final class MessageDetailsRepository {
return RecipientDeliveryStatus.Status.VIEWED;
} else if (groupStatus == GroupReceiptTable.STATUS_SKIPPED) {
return RecipientDeliveryStatus.Status.SKIPPED;
} else if (groupStatus == GroupReceiptTable.STATUS_FAILED) {
return RecipientDeliveryStatus.Status.SKIPPED;
}
throw new AssertionError();