Attempt to resend pending messages if job creation failed.

This commit is contained in:
Cody Henthorne
2025-06-30 16:11:22 -04:00
committed by Greyson Parrelli
parent 173983a1ab
commit f540886bb8
7 changed files with 166 additions and 11 deletions

View File

@@ -146,6 +146,8 @@ import java.util.UUID
import java.util.function.Function
import kotlin.math.max
import kotlin.math.min
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.milliseconds
open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : DatabaseTable(context, databaseHelper), MessageTypes, RecipientIdDatabaseReference, ThreadIdDatabaseReference {
@@ -1997,6 +1999,19 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
}
}
fun getRecentPendingMessages(): MmsReader {
val now = System.currentTimeMillis()
val oneDayAgo = now.milliseconds - 1.days
val messageIds = readableDatabase
.select(ID)
.from(TABLE_NAME)
.where("$DATE_SENT > ${oneDayAgo.inWholeMilliseconds} AND $DATE_SENT < $now AND ($TYPE & ${MessageTypes.BASE_TYPE_MASK}) = ${MessageTypes.BASE_SENDING_TYPE} AND $SCHEDULED_DATE = -1")
.run()
.readToList { it.requireLong(ID) }
return getMessages(messageIds)
}
private fun getOriginalEditedMessageRecord(messageId: Long): Long {
return readableDatabase.select(ID)
.from(TABLE_NAME)
@@ -5304,15 +5319,6 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
val type: Long
)
enum class MessageStatus {
PENDING,
SENT,
DELIVERED,
READ,
VIEWED,
FAILED
}
data class SyncMessageId(
val recipientId: RecipientId,
val timetamp: Long