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

Method findMessages

app/src/main/java/eu/faircode/email/Core.java:930–964  ·  view source on GitHub ↗
(Context context, EntityFolder folder, List<EntityMessage> messages, POP3Store istore, POP3Folder ifolder)

Source from the content-addressed store, hash-verified

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();
932 boolean hasUidl = caps.containsKey("UIDL");
933
934 Message[] imessages = ifolder.getMessages();
935
936 if (hasUidl) {
937 FetchProfile ifetch = new FetchProfile();
938 ifetch.add(UIDFolder.FetchProfileItem.UID);
939 ifolder.fetch(imessages, ifetch);
940 }
941
942 Map<EntityMessage, Message> result = new HashMap<>();
943
944 for (EntityMessage message : messages) {
945 result.put(message, null);
946 Log.i(folder.name + " POP searching for=" + message.uidl + "/" + message.msgid +
947 " messages=" + imessages.length + " uidl=" + hasUidl);
948
949 for (Message imessage : imessages) {
950 MessageHelper helper = new MessageHelper((MimeMessage) imessage, context);
951
952 String uidl = (hasUidl ? ifolder.getUID(imessage) : null);
953 String msgid = (TextUtils.isEmpty(uidl) ? helper.getPOP3MessageID() : null);
954
955 if ((uidl != null && uidl.equals(message.uidl)) ||
956 (msgid != null && msgid.equals(message.msgid))) {
957 Log.i(folder.name + " POP found=" + uidl + "/" + msgid);
958 result.put(message, imessage);
959 }
960 }
961 }
962
963 return result;
964 }
965
966 private static void onSetFlag(Context context, JSONArray jargs, EntityFolder folder, List<EntityMessage> messages, IMAPFolder ifolder, Flags.Flag flag) throws MessagingException, JSONException {
967 // Mark message (un)seen

Callers 4

onDeleteMethod · 0.95
onRawMethod · 0.95
onBodyMethod · 0.95
onAttachmentMethod · 0.95

Calls 11

addMethod · 0.95
iMethod · 0.95
getPOP3MessageIDMethod · 0.95
capabilitiesMethod · 0.80
containsKeyMethod · 0.80
getUIDMethod · 0.65
getMessagesMethod · 0.45
fetchMethod · 0.45
putMethod · 0.45
isEmptyMethod · 0.45
equalsMethod · 0.45

Tested by

no test coverage detected