package com.fsck.k9.mail.store.imap; import java.io.IOException; import com.fsck.k9.mail.BodyFactory; import com.fsck.k9.mail.Part; import com.fsck.k9.mail.filter.FixedLengthInputStream; import com.fsck.k9.mail.internet.MimeHeader; class FetchPartCallback implements ImapResponseCallback { private final Part part; private final BodyFactory bodyFactory; FetchPartCallback(Part part, BodyFactory bodyFactory) { this.part = part; this.bodyFactory = bodyFactory; } @Override public Object foundLiteral(ImapResponse response, FixedLengthInputStream literal) throws IOException { if (response.getTag() == null && ImapResponseParser.equalsIgnoreCase(response.get(1), "FETCH")) { //TODO: check for correct UID String contentTransferEncoding = part.getHeader(MimeHeader.HEADER_CONTENT_TRANSFER_ENCODING)[0]; String contentType = part.getHeader(MimeHeader.HEADER_CONTENT_TYPE)[0]; return bodyFactory.createBody(contentTransferEncoding, contentType, literal); } return null; } }