Skip to content

Commit 09ffc09

Browse files
Move some Realm functions to Controllers' companions
1 parent f9cb1b4 commit 09ffc09

File tree

4 files changed

+17
-21
lines changed

4 files changed

+17
-21
lines changed

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class FolderController @Inject constructor(
7878
}
7979
//endregion
8080

81+
//region Edit data
8182
fun update(mailbox: Mailbox, remoteFolders: List<Folder>, realm: Realm) {
8283
val remoteFoldersWithChildren = remoteFolders.flattenFolderChildren()
8384

@@ -91,11 +92,6 @@ class FolderController @Inject constructor(
9192
}
9293
}
9394

94-
fun deleteSearchFolderData(realm: MutableRealm) = with(getOrCreateSearchFolder(realm)) {
95-
messages = realmListOf()
96-
threads = realmListOf()
97-
}
98-
9995
private fun MutableRealm.deleteOutdatedFolders(mailbox: Mailbox, remoteFolders: List<Folder>) {
10096
getFolders(exceptionsFoldersIds = remoteFolders.map { it.id }, realm = this).reversed().forEach { folder ->
10197
deleteLocalFolder(mailbox, folder)
@@ -215,6 +211,11 @@ class FolderController @Inject constructor(
215211
getFolder(id, realm = this)?.let { folder -> updateChildrenRecursively(mutableListOf(folder)) }
216212
}
217213
}
214+
215+
fun deleteSearchFolderData(realm: MutableRealm) = with(getOrCreateSearchFolder(realm)) {
216+
messages = realmListOf()
217+
threads = realmListOf()
218+
}
218219
//endregion
219220
}
220221
}

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,6 @@ class MessageController @Inject constructor(private val mailboxContentRealm: Rea
150150
}
151151
//endregion
152152

153-
//region Edit data
154-
fun deleteSearchMessages(realm: MutableRealm) = with(realm) {
155-
delete(query<Message>("${Message::isFromSearch.name} == true").find())
156-
}
157-
//endregion
158-
159153
companion object {
160154
private val isNotDraft = "${Message::isDraft.name} == false"
161155
private val isNotScheduled = "${Message::isScheduled.name} == false"
@@ -245,6 +239,10 @@ class MessageController @Inject constructor(private val mailboxContentRealm: Rea
245239
deleteMessage(context, mailbox, message, realm)
246240
}
247241
}
242+
243+
fun deleteSearchMessages(realm: MutableRealm) = with(realm) {
244+
delete(query<Message>("${Message::isFromSearch.name} == true").find())
245+
}
248246
//endregion
249247
}
250248
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,6 @@ class ThreadController @Inject constructor(
151151
//endregion
152152

153153
//region Edit data
154-
fun deleteSearchThreads(realm: MutableRealm) = with(realm) {
155-
delete(query<Thread>("${Thread::isFromSearch.name} == true").find())
156-
}
157-
158154
fun saveThreads(searchMessages: List<Message>) {
159155
mailboxContentRealm().writeBlocking {
160156
FolderController.getOrCreateSearchFolder(realm = this).apply {
@@ -309,6 +305,10 @@ class ThreadController @Inject constructor(
309305
private fun Message.getDraftLocalUuid(realm: TypedRealm): String? {
310306
return if (isDraft) DraftController.getDraftByMessageUid(uid, realm)?.localUuid else null
311307
}
308+
309+
fun deleteSearchThreads(realm: MutableRealm) = with(realm) {
310+
delete(query<Thread>("${Thread::isFromSearch.name} == true").find())
311+
}
312312
//endregion
313313
}
314314
}

app/src/main/java/com/infomaniak/mail/utils/SearchUtils.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ import javax.inject.Singleton
3434
@Singleton
3535
class SearchUtils @Inject constructor(
3636
private val mailboxContentRealm: RealmDatabase.MailboxContent,
37-
private val folderController: FolderController,
38-
private val messageController: MessageController,
39-
private val threadController: ThreadController,
4037
@IoDispatcher private val ioDispatcher: CoroutineDispatcher,
4138
) {
4239

@@ -77,9 +74,9 @@ class SearchUtils @Inject constructor(
7774
suspend fun deleteRealmSearchData() = withContext(ioDispatcher) {
7875
mailboxContentRealm().writeBlocking {
7976
SentryLog.i(TAG, "SearchUtils>deleteRealmSearchData: remove old search data")
80-
messageController.deleteSearchMessages(realm = this)
81-
threadController.deleteSearchThreads(realm = this)
82-
folderController.deleteSearchFolderData(realm = this)
77+
MessageController.deleteSearchMessages(realm = this)
78+
ThreadController.deleteSearchThreads(realm = this)
79+
FolderController.deleteSearchFolderData(realm = this)
8380
}
8481
}
8582

0 commit comments

Comments
 (0)