diff --git a/internal/user/events.go b/internal/user/events.go index 5509f000..6876aef6 100644 --- a/internal/user/events.go +++ b/internal/user/events.go @@ -851,25 +851,3 @@ func safePublishMessageUpdate(user *User, addressID string, update imap.Update) return true, nil } - -func buildFlagSetFromMessageMetadata(message proton.MessageMetadata) imap.FlagSet { - flags := imap.NewFlagSet() - - if message.Seen() { - flags.AddToSelf(imap.FlagSeen) - } - - if message.Starred() { - flags.AddToSelf(imap.FlagFlagged) - } - - if message.IsDraft() { - flags.AddToSelf(imap.FlagDraft) - } - - if message.IsRepliedAll == true || message.IsReplied == true { //nolint: gosimple - flags.AddToSelf(imap.FlagAnswered) - } - - return flags -} diff --git a/internal/user/imap.go b/internal/user/imap.go index 87afa3f5..32bdf34a 100644 --- a/internal/user/imap.go +++ b/internal/user/imap.go @@ -608,19 +608,7 @@ func (conn *imapConnector) importMessage( } func toIMAPMessage(message proton.MessageMetadata) imap.Message { - flags := imap.NewFlagSet() - - if !message.Unread { - flags = flags.Add(imap.FlagSeen) - } - - if slices.Contains(message.LabelIDs, proton.StarredLabel) { - flags = flags.Add(imap.FlagFlagged) - } - - if slices.Contains(message.LabelIDs, proton.DraftsLabel) { - flags = flags.Add(imap.FlagDraft) - } + flags := buildFlagSetFromMessageMetadata(message) var date time.Time @@ -713,3 +701,25 @@ func toIMAPMailbox(label proton.Label, flags, permFlags, attrs imap.FlagSet) ima func isAllMailOrScheduled(mailboxID imap.MailboxID) bool { return (mailboxID == proton.AllMailLabel) || (mailboxID == proton.AllScheduledLabel) } + +func buildFlagSetFromMessageMetadata(message proton.MessageMetadata) imap.FlagSet { + flags := imap.NewFlagSet() + + if message.Seen() { + flags.AddToSelf(imap.FlagSeen) + } + + if message.Starred() { + flags.AddToSelf(imap.FlagFlagged) + } + + if message.IsDraft() { + flags.AddToSelf(imap.FlagDraft) + } + + if message.IsRepliedAll == true || message.IsReplied == true { //nolint: gosimple + flags.AddToSelf(imap.FlagAnswered) + } + + return flags +}