diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 9f72d6eb65..783f5cf8ae 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1844,7 +1844,7 @@ class Core { return; DB db = DB.getInstance(context); - EntityMessage message = db.message().getMessage(id); + DownloadMessage message = db.message().getDownloadMessageById(id); if (message == null) return; diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 74dd5f4824..179bcab41c 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -183,6 +183,11 @@ public interface DaoMessage { " WHERE id = :id") EntityMessage getMessage(long id); + @Query("SELECT id,size,content,warning" + + " FROM message" + + " WHERE id = :id") + DownloadMessage getDownloadMessageById(long id); + @Query("SELECT content" + " FROM message" + " WHERE id = :id") diff --git a/app/src/main/java/eu/faircode/email/DownloadMessage.java b/app/src/main/java/eu/faircode/email/DownloadMessage.java new file mode 100644 index 0000000000..307d82772a --- /dev/null +++ b/app/src/main/java/eu/faircode/email/DownloadMessage.java @@ -0,0 +1,24 @@ +package eu.faircode.email; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.room.PrimaryKey; + +import java.io.File; + +class DownloadMessage { + @PrimaryKey(autoGenerate = true) + public Long id; + public Long size; + @NonNull + public Boolean content = false; + public String warning; // persistent + + File getFile(Context context) { + File dir = new File(context.getFilesDir(), "messages"); + if (!dir.exists()) + dir.mkdir(); + return new File(dir, id.toString()); + } +} diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index 4e35c1f5fa..86cdcc92ed 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -75,11 +75,9 @@ import static androidx.room.ForeignKey.SET_NULL; @Index(value = {"ui_snoozed"}) } ) -public class EntityMessage implements Serializable { +public class EntityMessage extends DownloadMessage implements Serializable { static final String TABLE_NAME = "message"; - @PrimaryKey(autoGenerate = true) - public Long id; @NonNull public Long account; // performance @NonNull @@ -111,11 +109,8 @@ public class EntityMessage implements Serializable { public String headers; public Boolean raw; public String subject; - public Long size; @NonNull public Integer attachments = 0; // performance - @NonNull - public Boolean content = false; public Boolean plain_only = null; public Boolean encrypt = null; public String preview; @@ -152,7 +147,6 @@ public class EntityMessage implements Serializable { public Integer color; public Integer revision; // compose public Integer revisions; // compose - public String warning; // persistent public String error; // volatile public Long last_attempt; // send @@ -194,13 +188,6 @@ public class EntityMessage implements Serializable { return addresses.toArray(new Address[0]); } - File getFile(Context context) { - File dir = new File(context.getFilesDir(), "messages"); - if (!dir.exists()) - dir.mkdir(); - return new File(dir, id.toString()); - } - File getFile(Context context, int revision) { File dir = new File(context.getFilesDir(), "revision"); if (!dir.exists())