(earliest == null || it.cur().arrival.after(earliest));
case HEADER: return it.cur().headers.get(key) != null &&
((String)it.cur().headers.get(key)).toLowerCase().indexOf(text.toLowerCase()) != -1;
- case DELETED: return it.getFlag(Mailbox.Flag.DELETED);
- case SEEN: return it.getFlag(Mailbox.Flag.SEEN);
- case FLAGGED: return it.getFlag(Mailbox.Flag.FLAGGED);
- case DRAFT: return it.getFlag(Mailbox.Flag.DRAFT);
- case ANSWERED: return it.getFlag(Mailbox.Flag.ANSWERED);
- case RECENT: return it.getFlag(Mailbox.Flag.RECENT);
+ case DELETED: return (it.getFlags() & Mailbox.Flag.DELETED) !=0;
+ case SEEN: return (it.getFlags() & Mailbox.Flag.SEEN)!=0;
+ case FLAGGED: return (it.getFlags() & Mailbox.Flag.FLAGGED)!=0;
+ case DRAFT: return (it.getFlags() & Mailbox.Flag.DRAFT)!=0;
+ case ANSWERED: return (it.getFlags() & Mailbox.Flag.ANSWERED)!=0;
+ case RECENT: return (it.getFlags() & Mailbox.Flag.RECENT)!=0;
// FIXME: super inefficient
case BODY: throw new RuntimeException("BODY searches are not supported because they are slow");