(Context context, EntityFolder folder, List<EntityMessage> messages, POP3Store istore, POP3Folder ifolder)
| 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 |
no test coverage detected