From c95c6e6ef0197a4c631dd065f37d96ed4de8403b Mon Sep 17 00:00:00 2001 From: Michelle Tang Date: Fri, 11 Apr 2025 10:49:33 -0400 Subject: [PATCH] Schedule storage sync job for add/remove from folder. --- .../conversationlist/ConversationListViewModel.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt index 9111735926..833721bc4e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt @@ -29,6 +29,7 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.notifications.MarkReadReceiver import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId +import org.thoughtcrime.securesms.storage.StorageSyncHelper import org.thoughtcrime.securesms.util.rx.RxStore import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState import java.util.concurrent.TimeUnit @@ -261,6 +262,7 @@ class ConversationListViewModel( fun removeChatFromFolder(threadId: Long) { viewModelScope.launch(Dispatchers.IO) { SignalDatabase.chatFolders.removeFromFolder(currentFolder.id, threadId) + scheduleChatFolderSync(currentFolder.id) } } @@ -271,9 +273,15 @@ class ConversationListViewModel( includedChats?.contains(threadId) ?: false } SignalDatabase.chatFolders.addToFolder(folderId, threadIdsNotIncluded) + scheduleChatFolderSync(folderId) } } + private fun scheduleChatFolderSync(id: Long) { + SignalDatabase.chatFolders.markNeedsSync(id) + StorageSyncHelper.scheduleSyncForDataChange() + } + private data class ConversationListState( val chatFolders: List = emptyList(), val currentFolder: ChatFolderRecord = ChatFolderRecord(),