Loading feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProvider.kt +2 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import com.fsck.k9.CoreResourceProvider import com.fsck.k9.Preferences import com.fsck.k9.activity.MessageList import com.fsck.k9.ui.messagelist.DefaultFolderProvider import kotlinx.coroutines.runBlocking import net.thunderbird.core.android.account.LegacyAccountDto import net.thunderbird.core.logging.legacy.Log import net.thunderbird.feature.search.legacy.LocalMessageSearch Loading Loading @@ -82,7 +83,7 @@ class UnreadWidgetDataProvider( } private fun getFolderDisplayName(account: LegacyAccountDto, folderId: Long): String { val folder = folderRepository.getFolder(account, folderId) val folder = runBlocking { folderRepository.getFolder(account, folderId) } return if (folder != null) { folderNameFormatter.displayName(folder) } else { Loading feature/widget/unread/src/test/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProviderTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() { private fun createFolderRepository(): FolderRepository { return mock { on { getFolder(account, FOLDER_ID) } doReturn FOLDER onBlocking { getFolder(account, FOLDER_ID) } doReturn FOLDER } } Loading legacy/core/src/main/java/com/fsck/k9/mailstore/KoinModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ val mailStoreModule = module { single { FolderRepository( messageStoreManager = get(), outboxFolderManager = get(), ) } single { MessageViewInfoExtractorFactory(get(), get(), get()) } Loading legacy/mailstore/src/main/java/app/k9mail/legacy/mailstore/FolderRepository.kt +16 −4 Original line number Diff line number Diff line Loading @@ -16,33 +16,38 @@ import net.thunderbird.core.android.account.LegacyAccountDto import net.thunderbird.core.common.exception.MessagingException import net.thunderbird.feature.mail.folder.api.Folder import net.thunderbird.feature.mail.folder.api.FolderDetails import net.thunderbird.feature.mail.folder.api.FolderType import net.thunderbird.feature.mail.folder.api.OutboxFolderManager import net.thunderbird.feature.mail.folder.api.RemoteFolder @Suppress("TooManyFunctions") class FolderRepository( private val messageStoreManager: MessageStoreManager, private val outboxFolderManager: OutboxFolderManager, private val ioDispatcher: CoroutineDispatcher = Dispatchers.IO, ) { fun getFolder(account: LegacyAccountDto, folderId: Long): Folder? { suspend fun getFolder(account: LegacyAccountDto, folderId: Long): Folder? { val messageStore = messageStoreManager.getMessageStore(account) val outboxFolderId = outboxFolderManager.getOutboxFolderId(account.id) return messageStore.getFolder(folderId) { folder -> Folder( id = folder.id, name = folder.name, type = folderTypeOf(account, folder.id), type = folder.getFolderType(account, outboxFolderId), isLocalOnly = folder.isLocalOnly, ) } } fun getFolderDetails(account: LegacyAccountDto, folderId: Long): FolderDetails? { suspend fun getFolderDetails(account: LegacyAccountDto, folderId: Long): FolderDetails? { val messageStore = messageStoreManager.getMessageStore(account) val outboxFolderId = outboxFolderManager.getOutboxFolderId(account.id) return messageStore.getFolder(folderId) { folder -> FolderDetails( folder = Folder( id = folder.id, name = folder.name, type = folderTypeOf(account, folder.id), type = folder.getFolderType(account, outboxFolderId), isLocalOnly = folder.isLocalOnly, ), isInTopGroup = folder.isInTopGroup, Loading Loading @@ -187,6 +192,13 @@ class FolderRepository( .distinctUntilChanged() .flowOn(ioDispatcher) } private fun FolderDetailsAccessor.getFolderType(account: LegacyAccountDto, outboxFolderId: Long): FolderType = if (id == outboxFolderId) { FolderType.OUTBOX } else { folderTypeOf(account, id) } } data class RemoteFolderDetails( Loading legacy/mailstore/src/main/java/app/k9mail/legacy/mailstore/FolderTypeMapper.kt +0 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ object FolderTypeMapper { fun folderTypeOf(account: LegacyAccountDto, folderId: Long) = when (folderId) { account.inboxFolderId -> FolderType.INBOX account.outboxFolderId -> FolderType.OUTBOX account.sentFolderId -> FolderType.SENT account.trashFolderId -> FolderType.TRASH account.draftsFolderId -> FolderType.DRAFTS Loading Loading
feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProvider.kt +2 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import com.fsck.k9.CoreResourceProvider import com.fsck.k9.Preferences import com.fsck.k9.activity.MessageList import com.fsck.k9.ui.messagelist.DefaultFolderProvider import kotlinx.coroutines.runBlocking import net.thunderbird.core.android.account.LegacyAccountDto import net.thunderbird.core.logging.legacy.Log import net.thunderbird.feature.search.legacy.LocalMessageSearch Loading Loading @@ -82,7 +83,7 @@ class UnreadWidgetDataProvider( } private fun getFolderDisplayName(account: LegacyAccountDto, folderId: Long): String { val folder = folderRepository.getFolder(account, folderId) val folder = runBlocking { folderRepository.getFolder(account, folderId) } return if (folder != null) { folderNameFormatter.displayName(folder) } else { Loading
feature/widget/unread/src/test/kotlin/app/k9mail/feature/widget/unread/UnreadWidgetDataProviderTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ class UnreadWidgetDataProviderTest : AutoCloseKoinTest() { private fun createFolderRepository(): FolderRepository { return mock { on { getFolder(account, FOLDER_ID) } doReturn FOLDER onBlocking { getFolder(account, FOLDER_ID) } doReturn FOLDER } } Loading
legacy/core/src/main/java/com/fsck/k9/mailstore/KoinModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ val mailStoreModule = module { single { FolderRepository( messageStoreManager = get(), outboxFolderManager = get(), ) } single { MessageViewInfoExtractorFactory(get(), get(), get()) } Loading
legacy/mailstore/src/main/java/app/k9mail/legacy/mailstore/FolderRepository.kt +16 −4 Original line number Diff line number Diff line Loading @@ -16,33 +16,38 @@ import net.thunderbird.core.android.account.LegacyAccountDto import net.thunderbird.core.common.exception.MessagingException import net.thunderbird.feature.mail.folder.api.Folder import net.thunderbird.feature.mail.folder.api.FolderDetails import net.thunderbird.feature.mail.folder.api.FolderType import net.thunderbird.feature.mail.folder.api.OutboxFolderManager import net.thunderbird.feature.mail.folder.api.RemoteFolder @Suppress("TooManyFunctions") class FolderRepository( private val messageStoreManager: MessageStoreManager, private val outboxFolderManager: OutboxFolderManager, private val ioDispatcher: CoroutineDispatcher = Dispatchers.IO, ) { fun getFolder(account: LegacyAccountDto, folderId: Long): Folder? { suspend fun getFolder(account: LegacyAccountDto, folderId: Long): Folder? { val messageStore = messageStoreManager.getMessageStore(account) val outboxFolderId = outboxFolderManager.getOutboxFolderId(account.id) return messageStore.getFolder(folderId) { folder -> Folder( id = folder.id, name = folder.name, type = folderTypeOf(account, folder.id), type = folder.getFolderType(account, outboxFolderId), isLocalOnly = folder.isLocalOnly, ) } } fun getFolderDetails(account: LegacyAccountDto, folderId: Long): FolderDetails? { suspend fun getFolderDetails(account: LegacyAccountDto, folderId: Long): FolderDetails? { val messageStore = messageStoreManager.getMessageStore(account) val outboxFolderId = outboxFolderManager.getOutboxFolderId(account.id) return messageStore.getFolder(folderId) { folder -> FolderDetails( folder = Folder( id = folder.id, name = folder.name, type = folderTypeOf(account, folder.id), type = folder.getFolderType(account, outboxFolderId), isLocalOnly = folder.isLocalOnly, ), isInTopGroup = folder.isInTopGroup, Loading Loading @@ -187,6 +192,13 @@ class FolderRepository( .distinctUntilChanged() .flowOn(ioDispatcher) } private fun FolderDetailsAccessor.getFolderType(account: LegacyAccountDto, outboxFolderId: Long): FolderType = if (id == outboxFolderId) { FolderType.OUTBOX } else { folderTypeOf(account, id) } } data class RemoteFolderDetails( Loading
legacy/mailstore/src/main/java/app/k9mail/legacy/mailstore/FolderTypeMapper.kt +0 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ object FolderTypeMapper { fun folderTypeOf(account: LegacyAccountDto, folderId: Long) = when (folderId) { account.inboxFolderId -> FolderType.INBOX account.outboxFolderId -> FolderType.OUTBOX account.sentFolderId -> FolderType.SENT account.trashFolderId -> FolderType.TRASH account.draftsFolderId -> FolderType.DRAFTS Loading