mirror of https://github.com/M66B/FairEmail.git
Removed unused inline images on save draft
This commit is contained in:
parent
4f47735dc2
commit
eaf70bbc8f
|
@ -87,6 +87,7 @@ import com.google.android.material.bottomnavigation.LabelVisibilityMode;
|
|||
import com.google.android.material.snackbar.Snackbar;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.openintents.openpgp.OpenPgpError;
|
||||
import org.openintents.openpgp.util.OpenPgpApi;
|
||||
import org.openintents.openpgp.util.OpenPgpServiceConnection;
|
||||
|
@ -2003,6 +2004,20 @@ public class FragmentCompose extends FragmentBase {
|
|||
db.message().setMessageContent(draft.id, true, HtmlHelper.getPreview(body));
|
||||
}
|
||||
|
||||
// Remove unused inline images
|
||||
List<String> cids = new ArrayList<>();
|
||||
for (Element element : Jsoup.parse(body.toString()).select("img")) {
|
||||
String src = element.attr("src");
|
||||
if (src.startsWith("cid:"))
|
||||
cids.add("<" + src.substring(4) + ">");
|
||||
}
|
||||
|
||||
for (EntityAttachment attachment : new ArrayList<>(attachments))
|
||||
if (attachment.isInline() && attachment.cid != null && !cids.contains(attachment.cid)) {
|
||||
Log.i("Removing unused inline attachment cid=" + attachment.cid);
|
||||
db.attachment().deleteAttachment(attachment.id);
|
||||
}
|
||||
|
||||
// Execute action
|
||||
if (action == R.id.action_delete) {
|
||||
EntityFolder trash = db.folder().getFolderByType(draft.account, EntityFolder.TRASH);
|
||||
|
|
|
@ -23,9 +23,6 @@ import android.content.Context;
|
|||
import android.text.TextUtils;
|
||||
import android.webkit.MimeTypeMap;
|
||||
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Element;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
@ -336,21 +333,8 @@ public class MessageHelper {
|
|||
alternativePart.addBodyPart(plainPart);
|
||||
alternativePart.addBodyPart(htmlPart);
|
||||
|
||||
List<String> cids = new ArrayList<>();
|
||||
for (Element element : Jsoup.parse(body.toString()).select("img")) {
|
||||
String src = element.attr("src");
|
||||
if (src.startsWith("cid:"))
|
||||
cids.add("<" + src.substring(4) + ">");
|
||||
}
|
||||
|
||||
List<EntityAttachment> attachments = db.attachment().getAttachments(message.id);
|
||||
for (EntityAttachment attachment : new ArrayList<>(attachments))
|
||||
if (attachment.isInline() && attachment.cid != null && !cids.contains(attachment.cid)) {
|
||||
Log.i("Removing unused inline attachment cid=" + attachment.cid);
|
||||
attachments.remove(attachment);
|
||||
}
|
||||
|
||||
int available = 0;
|
||||
List<EntityAttachment> attachments = db.attachment().getAttachments(message.id);
|
||||
for (EntityAttachment attachment : attachments)
|
||||
if (attachment.available)
|
||||
available++;
|
||||
|
|
Loading…
Reference in New Issue