Loading app/core/src/main/java/com/fsck/k9/mailstore/K9BackendStorage.kt +4 −2 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ import com.fsck.k9.Preferences import com.fsck.k9.backend.api.BackendFolder import com.fsck.k9.backend.api.BackendStorage import com.fsck.k9.backend.api.FolderInfo import com.fsck.k9.mail.Folder.FolderType class K9BackendStorage( private val preferences: Preferences, Loading Loading @@ -35,7 +36,7 @@ class K9BackendStorage( override fun createFolders(folders: List<FolderInfo>) { if (folders.isEmpty()) return val localFolders = folders.map { localStore.getFolder(it.serverId, it.name) } val localFolders = folders.map { localStore.getFolder(it.serverId, it.name, it.type) } localStore.createFolders(localFolders, account.displayCount) } Loading @@ -46,10 +47,11 @@ class K9BackendStorage( .forEach { it.delete() } } override fun changeFolder(folderServerId: String, name: String) { override fun changeFolder(folderServerId: String, name: String, type: FolderType) { database.execute(false) { db -> val values = ContentValues().apply { put("name", name) put("type", type.toDatabaseFolderType()) } db.update("folders", values, "server_id = ?", arrayOf(folderServerId)) Loading app/core/src/main/java/com/fsck/k9/mailstore/LocalStore.java +3 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.fsck.k9.mail.FetchProfile; import com.fsck.k9.mail.FetchProfile.Item; import com.fsck.k9.mail.Flag; import com.fsck.k9.mail.Folder; import com.fsck.k9.mail.Folder.FolderType; import com.fsck.k9.mail.MessageRetrievalListener; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mail.Multipart; Loading Loading @@ -405,8 +406,8 @@ public class LocalStore { return new LocalFolder(this, serverId); } public LocalFolder getFolder(String serverId, String name) { return new LocalFolder(this, serverId, name); public LocalFolder getFolder(String serverId, String name, FolderType type) { return new LocalFolder(this, serverId, name, type); } // TODO this takes about 260-300ms, seems slow. Loading app/core/src/test/java/com/fsck/k9/mailstore/K9BackendFolderTest.kt +3 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ import com.fsck.k9.backend.api.BackendFolder import com.fsck.k9.backend.api.FolderInfo import com.fsck.k9.mail.Address import com.fsck.k9.mail.Flag import com.fsck.k9.mail.Folder.FolderType import com.fsck.k9.mail.Message import com.fsck.k9.mail.internet.MimeMessage import com.fsck.k9.mail.internet.MimeMessageHelper Loading Loading @@ -84,7 +85,7 @@ class K9BackendFolderTest : K9RobolectricTest() { fun createBackendFolder(): BackendFolder { val localStore: LocalStore = account.localStore val backendStorage = K9BackendStorage(preferences, account, localStore) backendStorage.createFolders(listOf(FolderInfo(FOLDER_SERVER_ID, FOLDER_NAME))) backendStorage.createFolders(listOf(FolderInfo(FOLDER_SERVER_ID, FOLDER_NAME, FOLDER_TYPE))) val folderServerIds = backendStorage.getFolderServerIds() assertTrue(FOLDER_SERVER_ID in folderServerIds) Loading Loading @@ -127,6 +128,7 @@ class K9BackendFolderTest : K9RobolectricTest() { companion object { const val FOLDER_SERVER_ID = "testFolder" const val FOLDER_NAME = "Test Folder" val FOLDER_TYPE = FolderType.REGULAR const val MESSAGE_SERVER_ID = "msg001" } } backend/api/src/main/java/com/fsck/k9/backend/api/BackendStorage.kt +3 −1 Original line number Diff line number Diff line package com.fsck.k9.backend.api import com.fsck.k9.mail.Folder.FolderType interface BackendStorage { fun getFolder(folderServerId: String): BackendFolder Loading @@ -7,7 +9,7 @@ interface BackendStorage { fun createFolders(folders: List<FolderInfo>) fun deleteFolders(folderServerIds: List<String>) fun changeFolder(folderServerId: String, name: String) fun changeFolder(folderServerId: String, name: String, type: FolderType) fun getExtraString(name: String): String? fun setExtraString(name: String, value: String) Loading backend/api/src/main/java/com/fsck/k9/backend/api/FolderInfo.kt +3 −1 Original line number Diff line number Diff line package com.fsck.k9.backend.api data class FolderInfo(val serverId: String, val name: String) import com.fsck.k9.mail.Folder data class FolderInfo(val serverId: String, val name: String, val type: Folder.FolderType) Loading
app/core/src/main/java/com/fsck/k9/mailstore/K9BackendStorage.kt +4 −2 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ import com.fsck.k9.Preferences import com.fsck.k9.backend.api.BackendFolder import com.fsck.k9.backend.api.BackendStorage import com.fsck.k9.backend.api.FolderInfo import com.fsck.k9.mail.Folder.FolderType class K9BackendStorage( private val preferences: Preferences, Loading Loading @@ -35,7 +36,7 @@ class K9BackendStorage( override fun createFolders(folders: List<FolderInfo>) { if (folders.isEmpty()) return val localFolders = folders.map { localStore.getFolder(it.serverId, it.name) } val localFolders = folders.map { localStore.getFolder(it.serverId, it.name, it.type) } localStore.createFolders(localFolders, account.displayCount) } Loading @@ -46,10 +47,11 @@ class K9BackendStorage( .forEach { it.delete() } } override fun changeFolder(folderServerId: String, name: String) { override fun changeFolder(folderServerId: String, name: String, type: FolderType) { database.execute(false) { db -> val values = ContentValues().apply { put("name", name) put("type", type.toDatabaseFolderType()) } db.update("folders", values, "server_id = ?", arrayOf(folderServerId)) Loading
app/core/src/main/java/com/fsck/k9/mailstore/LocalStore.java +3 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.fsck.k9.mail.FetchProfile; import com.fsck.k9.mail.FetchProfile.Item; import com.fsck.k9.mail.Flag; import com.fsck.k9.mail.Folder; import com.fsck.k9.mail.Folder.FolderType; import com.fsck.k9.mail.MessageRetrievalListener; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mail.Multipart; Loading Loading @@ -405,8 +406,8 @@ public class LocalStore { return new LocalFolder(this, serverId); } public LocalFolder getFolder(String serverId, String name) { return new LocalFolder(this, serverId, name); public LocalFolder getFolder(String serverId, String name, FolderType type) { return new LocalFolder(this, serverId, name, type); } // TODO this takes about 260-300ms, seems slow. Loading
app/core/src/test/java/com/fsck/k9/mailstore/K9BackendFolderTest.kt +3 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ import com.fsck.k9.backend.api.BackendFolder import com.fsck.k9.backend.api.FolderInfo import com.fsck.k9.mail.Address import com.fsck.k9.mail.Flag import com.fsck.k9.mail.Folder.FolderType import com.fsck.k9.mail.Message import com.fsck.k9.mail.internet.MimeMessage import com.fsck.k9.mail.internet.MimeMessageHelper Loading Loading @@ -84,7 +85,7 @@ class K9BackendFolderTest : K9RobolectricTest() { fun createBackendFolder(): BackendFolder { val localStore: LocalStore = account.localStore val backendStorage = K9BackendStorage(preferences, account, localStore) backendStorage.createFolders(listOf(FolderInfo(FOLDER_SERVER_ID, FOLDER_NAME))) backendStorage.createFolders(listOf(FolderInfo(FOLDER_SERVER_ID, FOLDER_NAME, FOLDER_TYPE))) val folderServerIds = backendStorage.getFolderServerIds() assertTrue(FOLDER_SERVER_ID in folderServerIds) Loading Loading @@ -127,6 +128,7 @@ class K9BackendFolderTest : K9RobolectricTest() { companion object { const val FOLDER_SERVER_ID = "testFolder" const val FOLDER_NAME = "Test Folder" val FOLDER_TYPE = FolderType.REGULAR const val MESSAGE_SERVER_ID = "msg001" } }
backend/api/src/main/java/com/fsck/k9/backend/api/BackendStorage.kt +3 −1 Original line number Diff line number Diff line package com.fsck.k9.backend.api import com.fsck.k9.mail.Folder.FolderType interface BackendStorage { fun getFolder(folderServerId: String): BackendFolder Loading @@ -7,7 +9,7 @@ interface BackendStorage { fun createFolders(folders: List<FolderInfo>) fun deleteFolders(folderServerIds: List<String>) fun changeFolder(folderServerId: String, name: String) fun changeFolder(folderServerId: String, name: String, type: FolderType) fun getExtraString(name: String): String? fun setExtraString(name: String, value: String) Loading
backend/api/src/main/java/com/fsck/k9/backend/api/FolderInfo.kt +3 −1 Original line number Diff line number Diff line package com.fsck.k9.backend.api data class FolderInfo(val serverId: String, val name: String) import com.fsck.k9.mail.Folder data class FolderInfo(val serverId: String, val name: String, val type: Folder.FolderType)