From 2b5dd74721190ec65c192006f63de6cabe105693 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 28 Aug 2018 16:51:22 +0000 Subject: [PATCH] Fixed saving drafts with selected identity --- app/src/main/java/eu/faircode/email/DaoIdentity.java | 3 +++ app/src/main/java/eu/faircode/email/FragmentCompose.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/DaoIdentity.java b/app/src/main/java/eu/faircode/email/DaoIdentity.java index e89d902c..78fd044f 100644 --- a/app/src/main/java/eu/faircode/email/DaoIdentity.java +++ b/app/src/main/java/eu/faircode/email/DaoIdentity.java @@ -48,6 +48,9 @@ public interface DaoIdentity { @Query("SELECT * FROM identity WHERE id = :id") LiveData liveIdentity(long id); + @Query("SELECT * FROM identity WHERE account = :account AND `primary`") + EntityIdentity getPrimaryIdentity(long account); + @Insert long insertIdentity(EntityIdentity identity); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 810791d0..e10f22cc 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1054,7 +1054,9 @@ public class FragmentCompose extends FragmentEx { EntityOperation.queue(db, draft, EntityOperation.MOVE, trash.id); } else if (action == R.id.action_save) { - if (ato == null && acc == null && abcc == null && + EntityIdentity primary = db.identity().getPrimaryIdentity(draft.account); + if ((primary == null || draft.identity == primary.id) && + ato == null && acc == null && abcc == null && TextUtils.isEmpty(subject) && TextUtils.isEmpty(body) && db.attachment().getAttachmentCount(draft.id) == 0)