MCPcopy Create free account
hub / github.com/M66B/FairEmail / findMsgId

Method findMsgId

app/src/main/java/eu/faircode/email/Core.java:890–928  ·  view source on GitHub ↗
(Context context, EntityAccount account, IMAPFolder ifolder, String msgid, Long from)

Source from the content-addressed store, hash-verified

888 }
889
890 private static Message[] findMsgId(Context context, EntityAccount account, IMAPFolder ifolder, String msgid, Long from) throws MessagingException, IOException {
891 // https://stackoverflow.com/questions/18891509/how-to-get-message-from-messageidterm-for-yahoo-imap-profile
892 if (account.isYahooJp() || from != null) {
893 if (from == null)
894 from = new Date().getTime();
895 from -= 24 * 3600 * 1000L;
896 long to = from + 3 * 24 * 3600 * 1000L;
897
898 Message[] itemps = ifolder.search(
899 new AndTerm(
900 new ReceivedDateTerm(ComparisonTerm.GE, new Date(from)),
901 new ReceivedDateTerm(ComparisonTerm.LE, new Date(to))));
902 List<Message> tmp = new ArrayList<>();
903 for (Message itemp : itemps) {
904 MessageHelper helper = new MessageHelper((MimeMessage) itemp, context);
905 if (msgid.equals(helper.getMessageID()))
906 tmp.add(itemp);
907 }
908 Log.w("Fallback search by" +
909 " msgid=" + msgid +
910 " host=" + account.host +
911 " from=" + new Date(from) + " to=" + new Date(to) +
912 " found=" + tmp.size());
913 return tmp.toArray(new Message[0]);
914 } else {
915 Message[] messages = ifolder.search(new MessageIDTerm(msgid));
916 if (messages == null || messages.length <= 1)
917 return messages;
918 List<Message> tmp = new ArrayList<>();
919 for (Message m : messages) {
920 MessageHelper helper = new MessageHelper((MimeMessage) m, context);
921 if (msgid.equals(helper.getMessageID()))
922 tmp.add(m);
923 else
924 Log.w("findMsgId msgid=" + msgid + " <> " + helper.getMessageID() + " !!!");
925 }
926 return tmp.toArray(new Message[0]);
927 }
928 }
929
930 private static Map<EntityMessage, Message> findMessages(Context context, EntityFolder folder, List<EntityMessage> messages, POP3Store istore, POP3Folder ifolder) throws MessagingException, IOException {
931 Map<String, String> caps = istore.capabilities();

Callers 3

findUidMethod · 0.95
onAddMethod · 0.95
onDeleteMethod · 0.95

Calls 8

getMessageIDMethod · 0.95
wMethod · 0.95
isYahooJpMethod · 0.80
toArrayMethod · 0.80
sizeMethod · 0.65
searchMethod · 0.45
equalsMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected