Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit e274bdf2 authored by Corey Bryant's avatar Corey Bryant Committed by GitHub
Browse files

Merge pull request #9792 from wmontwe/uplift-beta-9772-fix-imap-prefix-handling

uplift(beta): fix imap prefix handling
parents da4f8fee 2221ab6a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import com.fsck.k9.mail.Flag
import com.fsck.k9.mail.Message
import com.fsck.k9.mail.Part
import net.thunderbird.core.common.exception.MessagingException
import net.thunderbird.feature.mail.folder.api.FolderPathDelimiter

interface Backend {
    val supportsFlags: Boolean
@@ -18,7 +19,7 @@ interface Backend {
    val isPushCapable: Boolean

    @Throws(MessagingException::class)
    fun refreshFolderList()
    fun refreshFolderList(): FolderPathDelimiter?

    // TODO: Add a way to cancel the sync process
    fun sync(folderServerId: String, syncConfig: SyncConfig, listener: SyncListener)
+7 −1
Original line number Diff line number Diff line
package com.fsck.k9.backend.api

import com.fsck.k9.mail.FolderType
import net.thunderbird.feature.mail.folder.api.FolderPathDelimiter

data class FolderInfo(val serverId: String, val name: String, val type: FolderType)
data class FolderInfo(
    val serverId: String,
    val name: String,
    val type: FolderType,
    val folderPathDelimiter: FolderPathDelimiter? = null,
)
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ plugins {

dependencies {
    api(projects.backend.api)
    implementation(projects.feature.mail.folder.api)

    implementation(libs.kotlinx.serialization.json)

+5 −1
Original line number Diff line number Diff line
@@ -3,13 +3,15 @@ package app.k9mail.backend.demo
import com.fsck.k9.backend.api.BackendStorage
import com.fsck.k9.backend.api.FolderInfo
import com.fsck.k9.backend.api.updateFolders
import net.thunderbird.feature.mail.folder.api.FOLDER_DEFAULT_PATH_DELIMITER
import net.thunderbird.feature.mail.folder.api.FolderPathDelimiter

internal class CommandRefreshFolderList(
    private val backendStorage: BackendStorage,
    private val demoStore: DemoStore,
) {

    fun refreshFolderList() {
    fun refreshFolderList(): FolderPathDelimiter? {
        val localFolderServerIds = backendStorage.getFolderServerIds().toSet()

        backendStorage.updateFolders {
@@ -25,5 +27,7 @@ internal class CommandRefreshFolderList(
            val folderServerIdsToRemove = (localFolderServerIds - remoteFolderServerIds).toList()
            deleteFolders(folderServerIdsToRemove)
        }

        return FOLDER_DEFAULT_PATH_DELIMITER
    }
}
+3 −2
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ import com.fsck.k9.mail.BodyFactory
import com.fsck.k9.mail.Flag
import com.fsck.k9.mail.Message
import com.fsck.k9.mail.Part
import net.thunderbird.feature.mail.folder.api.FolderPathDelimiter

class DemoBackend(
    private val backendStorage: BackendStorage,
@@ -31,8 +32,8 @@ class DemoBackend(
    override val supportsFolderSubscriptions: Boolean = false
    override val isPushCapable: Boolean = false

    override fun refreshFolderList() {
        commandRefreshFolderList.refreshFolderList()
    override fun refreshFolderList(): FolderPathDelimiter? {
        return commandRefreshFolderList.refreshFolderList()
    }

    override fun sync(folderServerId: String, syncConfig: SyncConfig, listener: SyncListener) {
Loading