From 3804a3b34c7b761ed9e9520785f1c7b4865de3ad Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 17 Mar 2007 08:52:02 +0000 Subject: [PATCH] add 1 to uids to make Mail.app happy darcs-hash:20070317085202-5007d-2ee8dbae95852a3c13620fa17a9f749bf6ce5e6d.gz --- src/org/ibex/mail/FileBasedMailbox.java | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/org/ibex/mail/FileBasedMailbox.java b/src/org/ibex/mail/FileBasedMailbox.java index 0621689..79f9567 100644 --- a/src/org/ibex/mail/FileBasedMailbox.java +++ b/src/org/ibex/mail/FileBasedMailbox.java @@ -123,7 +123,10 @@ public class FileBasedMailbox extends Mailbox.Default { } public int uidValidity() { return uidValidity; } - public int uidNext() { return uidNext; } + + // UGLY: Apple Mail doesn't like UID=0, so we add one + public int uidNext() { return uidNext+1; } + public synchronized void insert(Message message, int flags) { try { String name, fullname; File target, f; @@ -146,6 +149,8 @@ public class FileBasedMailbox extends Mailbox.Default { Log.info(this, path + " <= " + message.summary()); } + + private static FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.endsWith("."); @@ -161,9 +166,20 @@ public class FileBasedMailbox extends Mailbox.Default { public boolean recent() { return false; } public int nntpNumber() { return cur+1; } // FIXME: lame public int imapNumber() { return cur+1; } // EUDORA insists that message numbers start at 1, not 0 - public int uid() { return done() ? -1 : Integer.parseInt(files[cur].substring(0, files[cur].length()-1)); } + + // UGLY: Apple Mail doesn't like UID=0, so we add one + public int uid() { return done() ? -1 : 1+Integer.parseInt(files[cur].substring(0, files[cur].length()-1)); } + public void delete() { File f = file(); if (f != null && f.exists()) f.delete(); } - public void seen(boolean seen) { } + public int getFlags() { + return file().lastModified()==MAGIC_DATE ? 0 : Flag.SEEN; + } + public void setFlags(int flags) { + File f = file(); + if ((flags & Mailbox.Flag.SEEN) == 0) f.setLastModified(MAGIC_DATE); + else if (f.lastModified()==MAGIC_DATE) f.setLastModified(System.currentTimeMillis()); + // FIXME + } public Headers head() { if (done()) return null; FileInputStream fis = null; -- 1.7.10.4