private Stream<MailboxException> updateFlags(MessageId messageId, UpdateMessagePatch updateMessagePatch, MailboxSession mailboxSession, MessageResult messageResult) { try { if (!updateMessagePatch.isFlagsIdentity()) { messageIdManager.setFlags( updateMessagePatch.applyToState(messageResult.getFlags()), FlagsUpdateMode.REPLACE, messageId, ImmutableList.of(messageResult.getMailboxId()), mailboxSession); } return Stream.of(); } catch (MailboxException e) { return Stream.of(e); } }
private void init() throws MailboxException { MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session); mailboxManager.addListener(path, this, mailboxSession); MessageResultIterator messages = mailboxManager.getMailbox(path, mailboxSession).getMessages(MessageRange.all(), FetchGroupImpl.MINIMAL, mailboxSession); synchronized (this) { while(messages.hasNext()) { MessageResult mr = messages.next(); applicableFlags.add(mr.getFlags()); add(mr.getUid()); } // \RECENT is not a applicable flag in imap so remove it from the list applicableFlags.remove(Flags.Flag.RECENT); } }
String[] uFlags = r.getFlags().getUserFlags(); for (int a = 0; a < uFlags.length; a++) { if (userFlags.contains(uFlags[a])) {
boolean condstoreEnabled = EnableProcessor.getEnabledCapabilities(session).contains(ImapConstants.SUPPORTS_CONDSTORE); final Flags flags = mr.getFlags(); final Long uidOut; if (useUid || qresyncEnabled) {
boolean condstoreEnabled = EnableProcessor.getEnabledCapabilities(session).contains(ImapConstants.SUPPORTS_CONDSTORE); final Flags flags = mr.getFlags(); final MessageUid uidOut; if (useUid || qresyncEnabled) {
String[] uFlags = r.getFlags().getUserFlags(); for (String uFlag : uFlags) { if (userFlags.contains(uFlag)) {
final Flags resultFlags = result.getFlags(); if (fetch.isSetSeen() && !resultFlags.contains(Flags.Flag.SEEN)) { mailbox.setFlags(new Flags(Flags.Flag.SEEN), true, false, MessageRange.one(resultUid), mailboxSession);
final Flags resultFlags = result.getFlags(); if (fetch.isSetSeen() && !resultFlags.contains(Flags.Flag.SEEN)) { mailbox.setFlags(new Flags(Flags.Flag.SEEN), MessageManager.FlagsUpdateMode.ADD, MessageRange.one(resultUid), mailboxSession);