diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index 918e1b152..3fb19d02b 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -1439,7 +1439,7 @@ public class MessagingController implements Runnable { private void fetchUnsyncedMessages(final Account account, final Folder remoteFolder, final LocalFolder localFolder, - List unsyncedMessages, + List unsyncedMessages, final List smallMessages, final List largeMessages, final AtomicInteger progress, @@ -1669,7 +1669,7 @@ public class MessagingController implements Runnable { Log.d(K9.LOG_TAG, "SYNC: Fetching large messages for folder " + folder); remoteFolder.fetch(largeMessages, fp, null); - for (Message message : largeMessages) { + for (T message : largeMessages) { if (!shouldImportMessage(account, folder, message, progress, earliestDate)) { progress.incrementAndGet(); @@ -2959,7 +2959,7 @@ public class MessagingController implements Runnable { localFolder = localStore.getFolder(folder); localFolder.open(Folder.OPEN_MODE_RW); - Message message = localFolder.getMessage(uid); + LocalMessage message = localFolder.getMessage(uid); if (uid.startsWith(K9.LOCAL_UID_PREFIX)) { Log.w(K9.LOG_TAG, "Message has local UID so cannot download fully."); diff --git a/src/com/fsck/k9/mail/Folder.java b/src/com/fsck/k9/mail/Folder.java index 6a82ca5a4..449afe016 100644 --- a/src/com/fsck/k9/mail/Folder.java +++ b/src/com/fsck/k9/mail/Folder.java @@ -138,7 +138,7 @@ public abstract class Folder { * @param listener Listener to notify as we fetch messages. * @throws MessagingException */ - public abstract void fetch(List messages, FetchProfile fp, + public abstract void fetch(List messages, FetchProfile fp, MessageRetrievalListener listener) throws MessagingException; public void fetchPart(Message message, Part part, @@ -162,7 +162,6 @@ public abstract class Folder { protected boolean mCanCreateKeywords = false; /** - * * @param oldPushState * @param message * @return empty string to clear the pushState, null to leave the state as-is diff --git a/src/com/fsck/k9/mail/store/imap/ImapStore.java b/src/com/fsck/k9/mail/store/imap/ImapStore.java index 3a3b48a84..e5e0998b3 100644 --- a/src/com/fsck/k9/mail/store/imap/ImapStore.java +++ b/src/com/fsck/k9/mail/store/imap/ImapStore.java @@ -1326,7 +1326,7 @@ public class ImapStore extends RemoteStore { } @Override - public void fetch(List messages, FetchProfile fp, MessageRetrievalListener listener) + public void fetch(List messages, FetchProfile fp, MessageRetrievalListener listener) throws MessagingException { if (messages == null || messages.isEmpty()) { return; diff --git a/src/com/fsck/k9/mail/store/pop3/Pop3Store.java b/src/com/fsck/k9/mail/store/pop3/Pop3Store.java index bc6770ff6..7856b4a38 100644 --- a/src/com/fsck/k9/mail/store/pop3/Pop3Store.java +++ b/src/com/fsck/k9/mail/store/pop3/Pop3Store.java @@ -151,7 +151,7 @@ public class Pop3Store extends RemoteStore { * * @return A Pop3Store URI that holds the same information as the {@code server} parameter. * - * @see Account#getStoreUri() + * @see StoreConfig#getStoreUri() * @see Pop3Store#decodeUri(String) */ public static String createUri(ServerSettings server) { @@ -572,7 +572,7 @@ public class Pop3Store extends RemoteStore { } @Override - public List getMessages(int start, int end, Date earliestDate, MessageRetrievalListener listener) + public List getMessages(int start, int end, Date earliestDate, MessageRetrievalListener listener) throws MessagingException { if (start < 1 || end < 1 || end < start) { throw new MessagingException(String.format(Locale.US, "Invalid message set %d %d", @@ -583,7 +583,7 @@ public class Pop3Store extends RemoteStore { } catch (IOException ioe) { throw new MessagingException("getMessages", ioe); } - List messages = new ArrayList(); + List messages = new ArrayList(); int i = 0; for (int msgNum = start; msgNum <= end; msgNum++) { Pop3Message message = mMsgNumToMsgMap.get(msgNum); @@ -765,7 +765,7 @@ public class Pop3Store extends RemoteStore { * @throws MessagingException */ @Override - public void fetch(List messages, FetchProfile fp, MessageRetrievalListener listener) + public void fetch(List messages, FetchProfile fp, MessageRetrievalListener listener) throws MessagingException { if (messages == null || messages.isEmpty()) { return; @@ -793,11 +793,7 @@ public class Pop3Store extends RemoteStore { throw new MessagingException("fetch", ioe); } for (int i = 0, count = messages.size(); i < count; i++) { - Message message = messages.get(i); - if (!(message instanceof Pop3Message)) { - throw new MessagingException("Pop3Store.fetch called with non-Pop3 Message"); - } - Pop3Message pop3Message = (Pop3Message)message; + Pop3Message pop3Message = messages.get(i); try { if (listener != null && !fp.contains(FetchProfile.Item.ENVELOPE)) { listener.messageStarted(pop3Message.getUid(), i, count); @@ -831,8 +827,8 @@ public class Pop3Store extends RemoteStore { } } - private void fetchEnvelope(List messages, - MessageRetrievalListener listener) throws IOException, MessagingException { + private void fetchEnvelope(List messages, + MessageRetrievalListener listener) throws IOException, MessagingException { int unsizedMessages = 0; for (Message message : messages) { if (message.getSize() == -1) { @@ -848,22 +844,18 @@ public class Pop3Store extends RemoteStore { * to hopefully save some time and bandwidth. */ for (int i = 0, count = messages.size(); i < count; i++) { - Message message = messages.get(i); - if (!(message instanceof Pop3Message)) { - throw new MessagingException("Pop3Store.fetch called with non-Pop3 Message"); - } - Pop3Message pop3Message = (Pop3Message)message; + Pop3Message message = messages.get(i); if (listener != null) { - listener.messageStarted(pop3Message.getUid(), i, count); + listener.messageStarted(message.getUid(), i, count); } String response = executeSimpleCommand(String.format(Locale.US, LIST_COMMAND + " %d", - mUidToMsgNumMap.get(pop3Message.getUid()))); + mUidToMsgNumMap.get(message.getUid()))); String[] listParts = response.split(" "); //int msgNum = Integer.parseInt(listParts[1]); int msgSize = Integer.parseInt(listParts[2]); - pop3Message.setSize(msgSize); + message.setSize(msgSize); if (listener != null) { - listener.messageFinished(pop3Message, i, count); + listener.messageFinished(message, i, count); } } } else { diff --git a/src/com/fsck/k9/mail/store/webdav/WebDavStore.java b/src/com/fsck/k9/mail/store/webdav/WebDavStore.java index 8a088e656..4c8ac495f 100644 --- a/src/com/fsck/k9/mail/store/webdav/WebDavStore.java +++ b/src/com/fsck/k9/mail/store/webdav/WebDavStore.java @@ -1459,9 +1459,8 @@ public class WebDavStore extends RemoteStore { } @Override - public List getMessages(String[] uids, MessageRetrievalListener listener) throws MessagingException { - List messageList = new ArrayList(); - List messages; + public List getMessages(String[] uids, MessageRetrievalListener listener) throws MessagingException { + List messageList = new ArrayList(); if (uids == null || uids.length == 0) { @@ -1480,9 +1479,7 @@ public class WebDavStore extends RemoteStore { listener.messageFinished(message, i, count); } } - messages = messageList; - - return messages; + return messageList; } private Map getMessageUrls(String[] uids) throws MessagingException { @@ -1494,13 +1491,12 @@ public class WebDavStore extends RemoteStore { headers.put("Brief", "t"); DataSet dataset = processRequest(this.mFolderUrl, "SEARCH", messageBody, headers); - Map uidToUrl = dataset.getUidToUrl(); - return uidToUrl; + return dataset.getUidToUrl(); } @Override - public void fetch(List messages, FetchProfile fp, MessageRetrievalListener listener) + public void fetch(List messages, FetchProfile fp, MessageRetrievalListener listener) throws MessagingException { if (messages == null || messages.isEmpty()) { @@ -1718,12 +1714,12 @@ public class WebDavStore extends RemoteStore { * that we do a series of medium calls instead of one large massive call or a large number of smaller calls. * Call it a happy balance */ - private void fetchEnvelope(List startMessages, MessageRetrievalListener listener) + private void fetchEnvelope(List startMessages, MessageRetrievalListener listener) throws MessagingException { Map headers = new HashMap(); String messageBody = ""; String[] uids; - List messages = new ArrayList(10); + List messages = new ArrayList(10); if (startMessages == null || startMessages.isEmpty()) { @@ -1731,7 +1727,7 @@ public class WebDavStore extends RemoteStore { } if (startMessages.size() > 10) { - List newMessages = new ArrayList(startMessages.size() - 10); + List newMessages = new ArrayList(startMessages.size() - 10); for (int i = 0, count = startMessages.size(); i < count; i++) { if (i < 10) { messages.set(i, startMessages.get(i)); @@ -1759,21 +1755,17 @@ public class WebDavStore extends RemoteStore { int count = messages.size(); for (int i = messages.size() - 1; i >= 0; i--) { - if (!(messages.get(i) instanceof WebDavMessage)) { - throw new MessagingException("WebDavStore fetch called with non-WebDavMessage"); - } - WebDavMessage wdMessage = (WebDavMessage) messages.get(i); - + WebDavMessage message = messages.get(i); if (listener != null) { listener.messageStarted(messages.get(i).getUid(), i, count); } - ParsedMessageEnvelope envelope = envelopes.get(wdMessage.getUid()); + ParsedMessageEnvelope envelope = envelopes.get(message.getUid()); if (envelope != null) { - wdMessage.setNewHeaders(envelope); - wdMessage.setFlagInternal(Flag.SEEN, envelope.getReadStatus()); + message.setNewHeaders(envelope); + message.setFlagInternal(Flag.SEEN, envelope.getReadStatus()); } else { - Log.e(LOG_TAG,"Asked to get metadata for a non-existent message: "+wdMessage.getUid()); + Log.e(LOG_TAG, "Asked to get metadata for a non-existent message: " + message.getUid()); } if (listener != null) { @@ -1801,7 +1793,7 @@ public class WebDavStore extends RemoteStore { } private void markServerMessagesRead(String[] uids, boolean read) throws MessagingException { - String messageBody = ""; + String messageBody; Map headers = new HashMap(); Map uidToUrl = getMessageUrls(uids); String[] urls = new String[uids.length]; @@ -1842,9 +1834,8 @@ public class WebDavStore extends RemoteStore { private String generateDeleteUrl(String startUrl) { String[] urlParts = startUrl.split("/"); String filename = urlParts[urlParts.length - 1]; - String finalUrl = WebDavStore.this.mUrl + "Deleted%20Items/" + filename; - return finalUrl; + return WebDavStore.this.mUrl + "Deleted%20Items/" + filename; } @Override @@ -2169,7 +2160,7 @@ public class WebDavStore extends RemoteStore { public void finish() { String uid = mUid.toString(); - if (uid != null && mTempData != null) { + if (mTempData != null) { mData.put(uid, mTempData); } else if (mTempData != null) { /* diff --git a/src/com/fsck/k9/mailstore/LocalFolder.java b/src/com/fsck/k9/mailstore/LocalFolder.java index e4572f40a..6677fcd05 100644 --- a/src/com/fsck/k9/mailstore/LocalFolder.java +++ b/src/com/fsck/k9/mailstore/LocalFolder.java @@ -609,7 +609,7 @@ public class LocalFolder extends Folder implements Serializable { } @Override - public void fetch(final List messages, final FetchProfile fp, final MessageRetrievalListener listener) + public void fetch(final List messages, final FetchProfile fp, final MessageRetrievalListener listener) throws MessagingException { try { this.localStore.database.execute(false, new DbCallback() { @@ -785,8 +785,8 @@ public class LocalFolder extends Folder implements Serializable { // SpamAssassin rules. localMessage.setHeader(MimeHeader.HEADER_CONTENT_TYPE, "text/plain"); localMessage.setBody(new TextBody("")); - } else if (mp.getCount() == 1 && (mp.getBodyPart(0) instanceof LocalAttachmentBodyPart) == false) - + } else if (mp.getCount() == 1 && + !(mp.getBodyPart(0) instanceof LocalAttachmentBodyPart)) { // If we have only one part, drop the MimeMultipart container. BodyPart part = mp.getBodyPart(0); @@ -810,7 +810,7 @@ public class LocalFolder extends Folder implements Serializable { } @Override - public List getMessages(int start, int end, Date earliestDate, MessageRetrievalListener listener) + public List getMessages(int start, int end, Date earliestDate, MessageRetrievalListener listener) throws MessagingException { open(OPEN_MODE_RW); throw new MessagingException( @@ -943,16 +943,16 @@ public class LocalFolder extends Folder implements Serializable { } @Override - public List getMessages(MessageRetrievalListener listener) throws MessagingException { + public List getMessages(MessageRetrievalListener listener) throws MessagingException { return getMessages(listener, true); } @Override - public List getMessages(final MessageRetrievalListener listener, final boolean includeDeleted) throws MessagingException { + public List getMessages(final MessageRetrievalListener listener, final boolean includeDeleted) throws MessagingException { try { - return this.localStore.database.execute(false, new DbCallback>() { + return localStore.database.execute(false, new DbCallback>() { @Override - public List doDbWork(final SQLiteDatabase db) throws WrappedException, UnavailableStorageException { + public List doDbWork(final SQLiteDatabase db) throws WrappedException, UnavailableStorageException { try { open(OPEN_MODE_RW); return LocalFolder.this.localStore.getMessages( @@ -977,15 +977,15 @@ public class LocalFolder extends Folder implements Serializable { } @Override - public List getMessages(String[] uids, MessageRetrievalListener listener) + public List getMessages(String[] uids, MessageRetrievalListener listener) throws MessagingException { open(OPEN_MODE_RW); if (uids == null) { return getMessages(listener); } - List messages = new ArrayList(); + List messages = new ArrayList(); for (String uid : uids) { - Message message = getMessage(uid); + LocalMessage message = getMessage(uid); if (message != null) { messages.add(message); } @@ -1231,7 +1231,7 @@ public class LocalFolder extends Folder implements Serializable { * message, retrieve the appropriate local message instance first (if it already exists). * @param messages * @param copy - * @return Map uidMap of srcUids -> destUids + * @return uidMap of srcUids -> destUids */ private Map appendMessages(final List messages, final boolean copy) throws MessagingException { open(OPEN_MODE_RW); @@ -1242,10 +1242,6 @@ public class LocalFolder extends Folder implements Serializable { public Void doDbWork(final SQLiteDatabase db) throws WrappedException, UnavailableStorageException { try { for (Message message : messages) { - if (!(message instanceof MimeMessage)) { - throw new Error("LocalStore can only store Messages that extend MimeMessage"); - } - long oldMessageId = -1; String uid = message.getUid(); if (uid == null || copy) {