Skip to content

Commit

Permalink
refactor: Rename the common interface into MessageFlags
Browse files Browse the repository at this point in the history
  • Loading branch information
LunarX committed Mar 5, 2025
1 parent e05e943 commit 98762e4
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -284,7 +284,7 @@ object ApiRepository : ApiRepositoryCore() {
)
}

inline fun <reified T: CommonMessageFlags> getMessagesUidsDelta(
inline fun <reified T: MessageFlags> getMessagesUidsDelta(
mailboxUuid: String,
folderId: String,
cursor: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ class RefreshController @Inject constructor(
private suspend fun Realm.fetchActivities(scope: CoroutineScope, folder: Folder, previousCursor: String) {
val activities = when (folder.role) {
FolderRole.SNOOZED -> getMessagesUidsDelta<SnoozeMessageFlags>(folder.id, previousCursor)
else -> getMessagesUidsDelta<MessageFlags>(folder.id, previousCursor)
else -> getMessagesUidsDelta<DefaultMessageFlags>(folder.id, previousCursor)
} ?: return

scope.ensureActive()
Expand Down Expand Up @@ -478,7 +478,7 @@ class RefreshController @Inject constructor(
//region Updated Messages
private fun MutableRealm.handleUpdatedUids(
scope: CoroutineScope,
messageFlags: List<CommonMessageFlags>,
messageFlags: List<MessageFlags>,
folderId: String,
refreshStrategy: RefreshStrategy,
): ImpactedFolders {
Expand All @@ -488,7 +488,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
Expand Down Expand Up @@ -696,7 +696,7 @@ class RefreshController @Inject constructor(
}
}

private inline fun <reified T : CommonMessageFlags> getMessagesUidsDelta(folderId: String, previousCursor: String): ActivitiesResult<T>? {
private inline fun <reified T : MessageFlags> getMessagesUidsDelta(folderId: String, previousCursor: String): ActivitiesResult<T>? {
return with(ApiRepository.getMessagesUidsDelta<T>(mailbox.uuid, folderId, previousCursor, okHttpClient)) {
if (!isSuccess()) throwErrorAsException()
return@with data
Expand Down Expand Up @@ -735,7 +735,7 @@ class RefreshController @Inject constructor(
logMessage: String,
email: String,
folder: Folder,
activities: ActivitiesResult<out CommonMessageFlags>,
activities: ActivitiesResult<out MessageFlags>,
) {
SentryDebug.addThreadsAlgoBreadcrumb(
message = logMessage,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ActivitiesResult<T : CommonMessageFlags>(
data class ActivitiesResult<T : MessageFlags>(
@SerialName("deleted")
val deletedShortUids: List<String>,
@SerialName("updated")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ data class SnoozeMessageFlags(
override val shortUid: String,
@SerialName("snooze_end_date")
val snoozeEndDate: Date,
): CommonMessageFlags
): MessageFlags
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -330,7 +330,7 @@ class Message : RealmObject {
}
}

fun updateFlags(flags: MessageFlags) {
fun updateFlags(flags: DefaultMessageFlags) {
isSeen = flags.isSeen
isFavorite = flags.isFavorite
isAnswered = flags.isAnswered
Expand Down

0 comments on commit 98762e4

Please sign in to comment.