Improve delete thread performance.
This commit is contained in:
parent
431e366e76
commit
59141bc6a4
1 changed files with 12 additions and 6 deletions
|
@ -1059,20 +1059,26 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
|
||||||
}
|
}
|
||||||
|
|
||||||
fun deleteConversations(selectedConversations: Set<Long>) {
|
fun deleteConversations(selectedConversations: Set<Long>) {
|
||||||
val recipientIdsForThreadIds = getRecipientIdsForThreadIds(selectedConversations)
|
val recipientIds = getRecipientIdsForThreadIds(selectedConversations)
|
||||||
|
|
||||||
|
val queries: List<SqlUtil.Query> = SqlUtil.buildCollectionQuery(ID, selectedConversations)
|
||||||
writableDatabase.withinTransaction { db ->
|
writableDatabase.withinTransaction { db ->
|
||||||
messages.deleteThreads(selectedConversations)
|
for (query in queries) {
|
||||||
drafts.clearDrafts(selectedConversations)
|
db.delete(TABLE_NAME, query.where, query.whereArgs)
|
||||||
|
}
|
||||||
|
|
||||||
SqlUtil.buildCollectionQuery(ID, selectedConversations)
|
messages.deleteAbandonedMessages()
|
||||||
.forEach { db.delete(TABLE_NAME, it.where, it.whereArgs) }
|
attachments.trimAllAbandonedAttachments()
|
||||||
|
groupReceipts.deleteAbandonedRows()
|
||||||
|
mentions.deleteAbandonedMentions()
|
||||||
|
drafts.clearDrafts(selectedConversations)
|
||||||
|
attachments.deleteAbandonedAttachmentFiles()
|
||||||
}
|
}
|
||||||
|
|
||||||
notifyConversationListListeners()
|
notifyConversationListListeners()
|
||||||
notifyConversationListeners(selectedConversations)
|
notifyConversationListeners(selectedConversations)
|
||||||
ApplicationDependencies.getDatabaseObserver().notifyConversationDeleteListeners(selectedConversations)
|
ApplicationDependencies.getDatabaseObserver().notifyConversationDeleteListeners(selectedConversations)
|
||||||
ConversationUtil.clearShortcuts(context, recipientIdsForThreadIds)
|
ConversationUtil.clearShortcuts(context, recipientIds)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun deleteAllConversations() {
|
fun deleteAllConversations() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue