From 148c39fe03d7ef5b157dec937b6169eb1fa98318 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 18 Dec 2022 12:01:10 +0100 Subject: [PATCH] Prefer send identity for auto select --- .../java/eu/faircode/email/DaoContact.java | 4 ++-- .../eu/faircode/email/FragmentCompose.java | 24 +++++++------------ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoContact.java b/app/src/main/java/eu/faircode/email/DaoContact.java index ccaa300d28..cfcdc436ea 100644 --- a/app/src/main/java/eu/faircode/email/DaoContact.java +++ b/app/src/main/java/eu/faircode/email/DaoContact.java @@ -59,9 +59,9 @@ public interface DaoContact { @Query("SELECT DISTINCT identity FROM contact" + " WHERE email = :email" + - " AND type IN (:types)" + + " AND type = :type" + " AND NOT identity IS NULL") - List getIdentities(String email, List types); + List getIdentities(String email, int type); @Query("SELECT *" + " FROM contact" + diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index ae878a694f..3231d72184 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1280,17 +1280,12 @@ public class FragmentCompose extends FragmentBase { EntityLog.log(context, "Select identity email=" + email + " sent=" + suggest_sent + " received=" + suggest_received); - List types = new ArrayList<>(); - if (suggest_sent) - types.add(EntityContact.TYPE_TO); - if (suggest_received) - types.add(EntityContact.TYPE_FROM); - - if (types.size() == 0) - return null; - DB db = DB.getInstance(context); - List identities = db.contact().getIdentities(email, types); + List identities = null; + if (suggest_sent) + identities = db.contact().getIdentities(email, EntityContact.TYPE_TO); + if (suggest_received && (identities == null || identities.size() == 0)) + identities = db.contact().getIdentities(email, EntityContact.TYPE_FROM); EntityLog.log(context, "Selected identity email=" + email + " identities=" + (identities == null ? null : identities.size())); if (identities != null && identities.size() == 1) @@ -4735,12 +4730,11 @@ public class FragmentCompose extends FragmentBase { Address[] tos = MessageHelper.parseAddresses(context, to); if (tos != null && tos.length > 0) { String email = ((InternetAddress) tos[0]).getAddress(); - List types = new ArrayList<>(); + List identities = null; if (suggest_sent) - types.add(EntityContact.TYPE_TO); - if (suggest_received) - types.add(EntityContact.TYPE_FROM); - List identities = db.contact().getIdentities(email, types); + identities = db.contact().getIdentities(email, EntityContact.TYPE_TO); + if (suggest_received && (identities == null || identities.size() == 0)) + identities = db.contact().getIdentities(email, EntityContact.TYPE_FROM); if (identities != null && identities.size() == 1) { EntityIdentity identity = db.identity().getIdentity(identities.get(0)); if (identity != null)