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(),