diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 710890c5c9..75ce5611dd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -487,6 +487,9 @@ object BackupRepository { SignalDatabase.recipients.setProfileKey(selfId, selfData.profileKey) SignalDatabase.recipients.setProfileSharing(selfId, true) + // Add back default All Chats chat folder after clearing data + SignalDatabase.chatFolders.insertAllChatFolder() + val importState = ImportState(backupKey) val chatItemInserter: ChatItemArchiveImporter = ChatItemArchiveProcessor.beginImport(importState) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ChatFolderTables.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ChatFolderTables.kt index 60134b0a51..aa00d9f844 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ChatFolderTables.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ChatFolderTables.kt @@ -395,6 +395,15 @@ class ChatFolderTables(context: Context?, databaseHelper: SignalDatabase?) : Dat } } + /** + * Inserts the default 'All chats' folder in cases where it could get deleted (eg backups) + */ + fun insertAllChatFolder() { + writableDatabase.withinTransaction { db -> + db.insert(ChatFolderTable.TABLE_NAME, null, getAllChatsFolderContentValues()) + } + } + private fun Collection.toContentValues(chatFolderId: Long, membershipType: MembershipType): List { return map { contentValuesOf(