From e5d6bf1cc6e133a1f7e246b55afc12fae4299f89 Mon Sep 17 00:00:00 2001 From: cketti Date: Fri, 12 Jun 2020 19:47:05 +0200 Subject: [PATCH] Change UnreadWidgetDataProvider to not get FolderDetails --- .../com/fsck/k9/mailstore/FolderRepository.kt | 33 +++++++++++++++++++ .../widget/unread/UnreadWidgetDataProvider.kt | 6 ++-- .../unread/UnreadWidgetDataProviderTest.kt | 12 +------ 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/app/core/src/main/java/com/fsck/k9/mailstore/FolderRepository.kt b/app/core/src/main/java/com/fsck/k9/mailstore/FolderRepository.kt index 32d1d104bf..f18b27fe9e 100644 --- a/app/core/src/main/java/com/fsck/k9/mailstore/FolderRepository.kt +++ b/app/core/src/main/java/com/fsck/k9/mailstore/FolderRepository.kt @@ -37,6 +37,39 @@ class FolderRepository( return displayFolders.sortedWith(sortForDisplay) } + fun getFolder(folderId: Long): Folder? { + val database = localStoreProvider.getInstance(account).database + return database.execute(false) { db -> + db.query( + "folders", + arrayOf( + "id", + "server_id", + "name", + "local_only" + ), + "id = ?", + arrayOf(folderId.toString()), + null, + null, + null + ).use { cursor -> + if (cursor.moveToFirst()) { + val id = cursor.getLong(0) + Folder( + id = id, + serverId = cursor.getString(1), + name = cursor.getString(2), + type = folderTypeOf(id), + isLocalOnly = cursor.getInt(3) == 1 + ) + } else { + null + } + } + } + } + fun getFolderDetails(folderId: Long): FolderDetails? { return getFolderDetails(selection = "id = ?", selectionArgs = arrayOf(folderId.toString())).firstOrNull() } diff --git a/app/k9mail/src/main/java/com/fsck/k9/widget/unread/UnreadWidgetDataProvider.kt b/app/k9mail/src/main/java/com/fsck/k9/widget/unread/UnreadWidgetDataProvider.kt index 93bb06ba0b..94abcb3e97 100644 --- a/app/k9mail/src/main/java/com/fsck/k9/widget/unread/UnreadWidgetDataProvider.kt +++ b/app/k9mail/src/main/java/com/fsck/k9/widget/unread/UnreadWidgetDataProvider.kt @@ -78,10 +78,10 @@ class UnreadWidgetDataProvider( private fun getFolderDisplayName(account: Account, folderId: Long): String { val folderRepository = folderRepositoryManager.getFolderRepository(account) - val folderDetails = folderRepository.getFolderDetails(folderId) - return if (folderDetails != null) { + val folder = folderRepository.getFolder(folderId) + return if (folder != null) { val folderNameFormatter = folderNameFormatterFactory.create(context) - folderNameFormatter.displayName(folderDetails.folder) + folderNameFormatter.displayName(folder) } else { Timber.e("Error loading folder for account %s, folder ID: %d", account, folderId) "" diff --git a/app/k9mail/src/test/java/com/fsck/k9/widget/unread/UnreadWidgetDataProviderTest.kt b/app/k9mail/src/test/java/com/fsck/k9/widget/unread/UnreadWidgetDataProviderTest.kt index f4b6af76a5..4d35e1cac6 100644 --- a/app/k9mail/src/test/java/com/fsck/k9/widget/unread/UnreadWidgetDataProviderTest.kt +++ b/app/k9mail/src/test/java/com/fsck/k9/widget/unread/UnreadWidgetDataProviderTest.kt @@ -5,9 +5,7 @@ import com.fsck.k9.Account import com.fsck.k9.AppRobolectricTest import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController -import com.fsck.k9.mail.FolderClass import com.fsck.k9.mailstore.Folder -import com.fsck.k9.mailstore.FolderDetails import com.fsck.k9.mailstore.FolderRepository import com.fsck.k9.mailstore.FolderRepositoryManager import com.fsck.k9.mailstore.FolderType @@ -109,15 +107,7 @@ class UnreadWidgetDataProviderTest : AppRobolectricTest() { fun createFolderRepository(): FolderRepository { return mock { - on { getFolderDetails(FOLDER_ID) } doReturn FolderDetails( - folder = FOLDER, - isInTopGroup = true, - isIntegrate = true, - syncClass = FolderClass.NO_CLASS, - displayClass = FolderClass.FIRST_CLASS, - notifyClass = FolderClass.NO_CLASS, - pushClass = FolderClass.NO_CLASS - ) + on { getFolder(FOLDER_ID) } doReturn FOLDER } } -- GitLab