diff --git a/app/src/main/java/eu/faircode/email/DaoIdentity.java b/app/src/main/java/eu/faircode/email/DaoIdentity.java index 8294fcc2bb..94dbabc69c 100644 --- a/app/src/main/java/eu/faircode/email/DaoIdentity.java +++ b/app/src/main/java/eu/faircode/email/DaoIdentity.java @@ -36,6 +36,9 @@ public interface DaoIdentity { @Query("SELECT * FROM identity WHERE synchronize = :synchronize") LiveData> liveIdentities(boolean synchronize); + @Query("SELECT * FROM identity") + List getIdentities(); + @Query("SELECT * FROM identity WHERE id = :id") EntityIdentity getIdentity(long id); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 23e048f152..e815274f8c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -540,13 +540,18 @@ public class FragmentCompose extends FragmentEx { if (ref != null) { account = ref.account; - // Reply to sender - EntityFolder rfolder = db.folder().getFolder(ref.folder); - if (EntityFolder.SENT.equals(rfolder.type)) { - Address[] tmp = ref.to; - ref.to = ref.from; - ref.reply = null; - ref.from = tmp; + // Reply to sender, not to known self + if (ref.from != null && ref.from.length == 1) { + // All identities, synchronized or not + List identities = db.identity().getIdentities(); + for (EntityIdentity identity : identities) + if (((InternetAddress) ref.from[0]).getAddress().equals(identity.email)) { + Address[] tmp = ref.to; + ref.to = ref.from; + ref.reply = null; + ref.from = tmp; + break; + } } }