From 27526b2101bc218ee3aea3ac40a3e78270f67903 Mon Sep 17 00:00:00 2001 From: Gibran Chevalley Date: Tue, 4 Mar 2025 15:51:55 +0100 Subject: [PATCH] refactor: Rename the common interface into MessageFlags --- .../infomaniak/mail/data/api/ApiRepository.kt | 4 ++-- .../cache/mailboxContent/RefreshController.kt | 10 ++++----- .../models/getMessages/ActivitiesResult.kt | 2 +- ...MessageFlags.kt => DefaultMessageFlags.kt} | 21 ++++++++++++++++--- .../data/models/getMessages/MessageFlags.kt | 21 +++---------------- .../models/getMessages/SnoozeMessageFlags.kt | 2 +- .../mail/data/models/message/Message.kt | 4 ++-- 7 files changed, 32 insertions(+), 32 deletions(-) rename app/src/main/java/com/infomaniak/mail/data/models/getMessages/{CommonMessageFlags.kt => DefaultMessageFlags.kt} (61%) diff --git a/app/src/main/java/com/infomaniak/mail/data/api/ApiRepository.kt b/app/src/main/java/com/infomaniak/mail/data/api/ApiRepository.kt index 7bf4632d24..029b11f877 100644 --- a/app/src/main/java/com/infomaniak/mail/data/api/ApiRepository.kt +++ b/app/src/main/java/com/infomaniak/mail/data/api/ApiRepository.kt @@ -46,7 +46,7 @@ import com.infomaniak.mail.data.models.draft.SaveDraftResult import com.infomaniak.mail.data.models.draft.ScheduleDraftResult import com.infomaniak.mail.data.models.draft.SendDraftResult import com.infomaniak.mail.data.models.getMessages.ActivitiesResult -import com.infomaniak.mail.data.models.getMessages.CommonMessageFlags +import com.infomaniak.mail.data.models.getMessages.MessageFlags import com.infomaniak.mail.data.models.getMessages.GetMessagesByUidsResult import com.infomaniak.mail.data.models.getMessages.NewMessagesResult import com.infomaniak.mail.data.models.mailbox.Mailbox @@ -284,7 +284,7 @@ object ApiRepository : ApiRepositoryCore() { ) } - inline fun getMessagesUidsDelta( + inline fun getMessagesUidsDelta( mailboxUuid: String, folderId: String, cursor: String, diff --git a/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/RefreshController.kt b/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/RefreshController.kt index 8bd87bf65a..2db50082dc 100644 --- a/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/RefreshController.kt +++ b/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/RefreshController.kt @@ -256,7 +256,7 @@ class RefreshController @Inject constructor( private suspend fun Realm.fetchActivities(scope: CoroutineScope, folder: Folder, previousCursor: String) { val activities = when (folder.role) { FolderRole.SNOOZED -> getMessagesUidsDelta(folder.id, previousCursor) - else -> getMessagesUidsDelta(folder.id, previousCursor) + else -> getMessagesUidsDelta(folder.id, previousCursor) } ?: return scope.ensureActive() @@ -476,7 +476,7 @@ class RefreshController @Inject constructor( //region Updated Messages private fun MutableRealm.handleUpdatedUids( scope: CoroutineScope, - messageFlags: List, + messageFlags: List, folderId: String, refreshStrategy: RefreshStrategy, ): ImpactedFolders { @@ -486,7 +486,7 @@ class RefreshController @Inject constructor( refreshStrategy.getMessageFromShortUid(flags.shortUid, folderId, realm = this)?.let { message -> when (flags) { - is MessageFlags -> message.updateFlags(flags) + is DefaultMessageFlags -> message.updateFlags(flags) is SnoozeMessageFlags -> message.updateSnoozeFlags(flags) } threads += message.threads @@ -560,7 +560,7 @@ class RefreshController @Inject constructor( } } - private inline fun getMessagesUidsDelta(folderId: String, previousCursor: String): ActivitiesResult? { + private inline fun getMessagesUidsDelta(folderId: String, previousCursor: String): ActivitiesResult? { return with(ApiRepository.getMessagesUidsDelta(mailbox.uuid, folderId, previousCursor, okHttpClient)) { if (!isSuccess()) throwErrorAsException() return@with data @@ -599,7 +599,7 @@ class RefreshController @Inject constructor( logMessage: String, email: String, folder: Folder, - activities: ActivitiesResult, + activities: ActivitiesResult, ) { SentryDebug.addThreadsAlgoBreadcrumb( message = logMessage, diff --git a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt index d0bb47f12d..3f77be742c 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt @@ -21,7 +21,7 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class ActivitiesResult( +data class ActivitiesResult( @SerialName("deleted") val deletedShortUids: List, @SerialName("updated") diff --git a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/CommonMessageFlags.kt b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/DefaultMessageFlags.kt similarity index 61% rename from app/src/main/java/com/infomaniak/mail/data/models/getMessages/CommonMessageFlags.kt rename to app/src/main/java/com/infomaniak/mail/data/models/getMessages/DefaultMessageFlags.kt index e88625af79..7d682f11d3 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/CommonMessageFlags.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/DefaultMessageFlags.kt @@ -17,6 +17,21 @@ */ package com.infomaniak.mail.data.models.getMessages -sealed interface CommonMessageFlags { - val shortUid: String -} +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class DefaultMessageFlags( + @SerialName("uid") + override val shortUid: String, + @SerialName("answered") + val isAnswered: Boolean, + @SerialName("flagged") + val isFavorite: Boolean, + @SerialName("forwarded") + val isForwarded: Boolean, + @SerialName("scheduled") + val isScheduledMessage: Boolean, + @SerialName("seen") + val isSeen: Boolean, +) : MessageFlags diff --git a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/MessageFlags.kt b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/MessageFlags.kt index f3f040e6d0..24fa632675 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/MessageFlags.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/MessageFlags.kt @@ -17,21 +17,6 @@ */ package com.infomaniak.mail.data.models.getMessages -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class MessageFlags( - @SerialName("uid") - override val shortUid: String, - @SerialName("answered") - val isAnswered: Boolean, - @SerialName("flagged") - val isFavorite: Boolean, - @SerialName("forwarded") - val isForwarded: Boolean, - @SerialName("scheduled") - val isScheduledMessage: Boolean, - @SerialName("seen") - val isSeen: Boolean, -) : CommonMessageFlags +sealed interface MessageFlags { + val shortUid: String +} diff --git a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/SnoozeMessageFlags.kt b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/SnoozeMessageFlags.kt index db8677ae8d..6a71c948b7 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/SnoozeMessageFlags.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/SnoozeMessageFlags.kt @@ -47,4 +47,4 @@ data class SnoozeMessageFlags( override val shortUid: String, @SerialName("snooze_end_date") val snoozeEndDate: Date, -): CommonMessageFlags +): MessageFlags diff --git a/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt b/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt index 1a0afdfb87..17e1c156dd 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt @@ -30,7 +30,7 @@ import com.infomaniak.mail.data.models.SnoozeState import com.infomaniak.mail.data.models.SwissTransferFile import com.infomaniak.mail.data.models.calendar.CalendarEventResponse import com.infomaniak.mail.data.models.correspondent.Recipient -import com.infomaniak.mail.data.models.getMessages.MessageFlags +import com.infomaniak.mail.data.models.getMessages.DefaultMessageFlags import com.infomaniak.mail.data.models.getMessages.SnoozeMessageFlags import com.infomaniak.mail.data.models.thread.Thread import com.infomaniak.mail.utils.AccountUtils @@ -330,7 +330,7 @@ class Message : RealmObject { } } - fun updateFlags(flags: MessageFlags) { + fun updateFlags(flags: DefaultMessageFlags) { isSeen = flags.isSeen isFavorite = flags.isFavorite isAnswered = flags.isAnswered