Loading app/core/src/main/java/com/fsck/k9/mailstore/AutoExpandFolderBackendFoldersRefreshListener.kt +18 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ import com.fsck.k9.Account import com.fsck.k9.Preferences /** * Reset an Account's auto-expand folder when the currently configured folder was removed. * Update an Account's auto-expand folder after the folder list has been refreshed. */ class AutoExpandFolderBackendFoldersRefreshListener( private val preferences: Preferences, Loading @@ -16,14 +16,30 @@ class AutoExpandFolderBackendFoldersRefreshListener( override fun onAfterFolderListRefresh() { checkAutoExpandFolder() removeImportedAutoExpandFolder() saveAccount() } private fun checkAutoExpandFolder() { val folderId = account.importedAutoExpandFolder?.let { folderRepository.getFolderId(it) } if (folderId != null) { account.autoExpandFolderId = folderId return } account.autoExpandFolderId?.let { autoExpandFolderId -> if (!folderRepository.isFolderPresent(autoExpandFolderId)) { account.autoExpandFolderId = null preferences.saveAccount(account) } } } private fun removeImportedAutoExpandFolder() { account.importedAutoExpandFolder = null } private fun saveAccount() { preferences.saveAccount(account) } } app/core/src/main/java/com/fsck/k9/mailstore/FolderRepository.kt +17 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,23 @@ class FolderRepository( } } fun getFolderId(folderServerId: String): Long? { val database = localStoreProvider.getInstance(account).database return database.execute(false) { db -> db.query( "folders", arrayOf("id"), "server_id = ?", arrayOf(folderServerId), null, null, null ).use { cursor -> if (cursor.moveToFirst()) cursor.getLong(0) else null } } } fun isFolderPresent(folderId: Long): Boolean { val database = localStoreProvider.getInstance(account).database return database.execute(false) { db -> Loading Loading
app/core/src/main/java/com/fsck/k9/mailstore/AutoExpandFolderBackendFoldersRefreshListener.kt +18 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ import com.fsck.k9.Account import com.fsck.k9.Preferences /** * Reset an Account's auto-expand folder when the currently configured folder was removed. * Update an Account's auto-expand folder after the folder list has been refreshed. */ class AutoExpandFolderBackendFoldersRefreshListener( private val preferences: Preferences, Loading @@ -16,14 +16,30 @@ class AutoExpandFolderBackendFoldersRefreshListener( override fun onAfterFolderListRefresh() { checkAutoExpandFolder() removeImportedAutoExpandFolder() saveAccount() } private fun checkAutoExpandFolder() { val folderId = account.importedAutoExpandFolder?.let { folderRepository.getFolderId(it) } if (folderId != null) { account.autoExpandFolderId = folderId return } account.autoExpandFolderId?.let { autoExpandFolderId -> if (!folderRepository.isFolderPresent(autoExpandFolderId)) { account.autoExpandFolderId = null preferences.saveAccount(account) } } } private fun removeImportedAutoExpandFolder() { account.importedAutoExpandFolder = null } private fun saveAccount() { preferences.saveAccount(account) } }
app/core/src/main/java/com/fsck/k9/mailstore/FolderRepository.kt +17 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,23 @@ class FolderRepository( } } fun getFolderId(folderServerId: String): Long? { val database = localStoreProvider.getInstance(account).database return database.execute(false) { db -> db.query( "folders", arrayOf("id"), "server_id = ?", arrayOf(folderServerId), null, null, null ).use { cursor -> if (cursor.moveToFirst()) cursor.getLong(0) else null } } } fun isFolderPresent(folderId: Long): Boolean { val database = localStoreProvider.getInstance(account).database return database.execute(false) { db -> Loading