Skip to content

Commit 84efd79

Browse files
Fix wrong Folder ID in Search Messages
1 parent 3b4612a commit 84efd79

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/ThreadController.kt

+9-3
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class ThreadController @Inject constructor(
8080
*/
8181
suspend fun initAndGetSearchFolderThreads(
8282
remoteThreads: List<Thread>,
83-
folderRole: FolderRole?,
83+
filterFolder: Folder?,
8484
): List<Thread> = withContext(ioDispatcher) {
8585

8686
fun MutableRealm.keepOldMessagesAndAddToSearchFolder(remoteThread: Thread, searchFolder: Folder) {
@@ -95,7 +95,7 @@ class ThreadController @Inject constructor(
9595
remoteMessage.initLocalValues(
9696
date = localMessage?.date ?: remoteMessage.date,
9797
isFullyDownloaded = localMessage?.isFullyDownloaded() ?: false,
98-
isTrashed = folderRole == FolderRole.TRASH,
98+
isTrashed = filterFolder?.role == FolderRole.TRASH,
9999
isFromSearch = localMessage == null,
100100
draftLocalUuid = localMessage?.draftLocalUuid,
101101
latestCalendarEventResponse = null,
@@ -113,7 +113,13 @@ class ThreadController @Inject constructor(
113113
remoteThreads.map { remoteThread ->
114114
ensureActive()
115115
remoteThread.isFromSearch = true
116-
remoteThread.folderId = remoteThread.messages.first().folderId
116+
117+
val folderId = if (remoteThread.messages.count() == 1) {
118+
remoteThread.messages.single().folderId
119+
} else {
120+
filterFolder!!.id
121+
}
122+
remoteThread.folderId = folderId
117123

118124
keepOldMessagesAndAddToSearchFolder(remoteThread, searchFolder)
119125

app/src/main/java/com/infomaniak/mail/ui/main/search/SearchViewModel.kt

+2-5
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,8 @@ class SearchViewModel @Inject constructor(
209209

210210
suspend fun ApiResponse<ThreadResult>.initSearchFolderThreads() {
211211
runCatching {
212-
data?.threads?.let {
213-
threadController.initAndGetSearchFolderThreads(
214-
remoteThreads = it,
215-
folderRole = folder?.role
216-
)
212+
data?.threads?.let { remoteThreads ->
213+
threadController.initAndGetSearchFolderThreads(remoteThreads, folder)
217214
}
218215
}.getOrElse { exception ->
219216
exception.printStackTrace()

0 commit comments

Comments
 (0)