mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 16:49:40 +01:00
Inline message processing when we can.
This commit is contained in:
@@ -1032,15 +1032,6 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||
type = type or MessageTypes.KEY_EXCHANGE_IDENTITY_DEFAULT_BIT
|
||||
}
|
||||
|
||||
val recipient = Recipient.resolved(message.authorId)
|
||||
|
||||
val groupRecipient: Recipient? = if (message.groupId == null) {
|
||||
null
|
||||
} else {
|
||||
val id = recipients.getOrInsertFromPossiblyMigratedGroupId(message.groupId!!)
|
||||
Recipient.resolved(id)
|
||||
}
|
||||
|
||||
val silent = message.isIdentityUpdate ||
|
||||
message.isIdentityVerified ||
|
||||
message.isIdentityDefault ||
|
||||
@@ -1053,7 +1044,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||
Util.isDefaultSmsProvider(context)
|
||||
)
|
||||
|
||||
val threadId: Long = if (groupRecipient == null) threads.getOrCreateThreadIdFor(recipient) else threads.getOrCreateThreadIdFor(groupRecipient)
|
||||
val threadId: Long = if (message.groupId == null) threads.getOrCreateThreadIdFor(message.authorId, false) else threads.getOrCreateThreadIdFor(RecipientId.from(message.groupId!!), true)
|
||||
|
||||
if (tryToCollapseJoinRequestEvents) {
|
||||
val result = collapseJoinRequestEventsIfPossible(threadId, message as IncomingGroupUpdateMessage)
|
||||
@@ -1098,7 +1089,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||
}
|
||||
|
||||
if (message.subscriptionId != -1) {
|
||||
recipients.setDefaultSubscriptionId(recipient.id, message.subscriptionId)
|
||||
recipients.setDefaultSubscriptionId(message.authorId, message.subscriptionId)
|
||||
}
|
||||
writableDatabase.setTransactionSuccessful()
|
||||
} finally {
|
||||
|
||||
@@ -1152,6 +1152,11 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
|
||||
return threadId ?: createThreadForRecipient(recipient.id, recipient.isGroup, distributionType)
|
||||
}
|
||||
|
||||
fun getOrCreateThreadIdFor(recipientId: RecipientId, isGroup: Boolean, distributionType: Int = DistributionTypes.DEFAULT): Long {
|
||||
val threadId = getThreadIdFor(recipientId)
|
||||
return threadId ?: createThreadForRecipient(recipientId, isGroup, distributionType)
|
||||
}
|
||||
|
||||
fun areThreadIdAndRecipientAssociated(threadId: Long, recipient: Recipient): Boolean {
|
||||
return readableDatabase
|
||||
.exists(TABLE_NAME)
|
||||
|
||||
Reference in New Issue
Block a user