Support selecting multiple threads to add to chat folder.

Resolves #13973
This commit is contained in:
Sagar
2025-02-06 22:55:19 +05:30
committed by Greyson Parrelli
parent de4b653554
commit d938906d3e
10 changed files with 172 additions and 72 deletions

View File

@@ -380,15 +380,17 @@ class ChatFolderTables(context: Context?, databaseHelper: SignalDatabase?) : Dat
/**
* Adds a thread to a chat folder
*/
fun addToFolder(folderId: Long, threadId: Long) {
fun addToFolder(folderId: Long, threadIds: List<Long>) {
writableDatabase.withinTransaction { db ->
db.insertInto(ChatFolderMembershipTable.TABLE_NAME)
.values(
ChatFolderMembershipTable.CHAT_FOLDER_ID to folderId,
ChatFolderMembershipTable.THREAD_ID to threadId,
ChatFolderMembershipTable.MEMBERSHIP_TYPE to MembershipType.INCLUDED.value
)
.run(SQLiteDatabase.CONFLICT_REPLACE)
threadIds.forEach { threadId ->
db.insertInto(ChatFolderMembershipTable.TABLE_NAME)
.values(
ChatFolderMembershipTable.CHAT_FOLDER_ID to folderId,
ChatFolderMembershipTable.THREAD_ID to threadId,
ChatFolderMembershipTable.MEMBERSHIP_TYPE to MembershipType.INCLUDED.value
)
.run(SQLiteDatabase.CONFLICT_REPLACE)
}
AppDependencies.databaseObserver.notifyChatFolderObservers()
}