mirror of
https://github.com/M66B/FairEmail.git
synced 2025-02-28 00:35:58 +00:00
Select alias when multiple matching identities
This commit is contained in:
parent
2153df6fc7
commit
a0397e068a
2 changed files with 17 additions and 10 deletions
|
@ -49,24 +49,23 @@ public interface DaoIdentity {
|
||||||
" ORDER BY name COLLATE NOCASE")
|
" ORDER BY name COLLATE NOCASE")
|
||||||
List<EntityIdentity> getIdentities(long account);
|
List<EntityIdentity> getIdentities(long account);
|
||||||
|
|
||||||
|
@Query("SELECT * FROM identity" +
|
||||||
|
" WHERE account = :account" +
|
||||||
|
" AND email = :email COLLATE NOCASE")
|
||||||
|
List<EntityIdentity> getIdentities(long account, String email);
|
||||||
|
|
||||||
@Query("SELECT identity.* FROM identity" +
|
@Query("SELECT identity.* FROM identity" +
|
||||||
" JOIN account ON account.id = identity.account" +
|
" JOIN account ON account.id = identity.account" +
|
||||||
" WHERE identity.account = :account" +
|
" WHERE identity.account = :account" +
|
||||||
" AND identity.synchronize AND account.synchronize")
|
" AND identity.synchronize AND account.synchronize")
|
||||||
List<EntityIdentity> getSynchronizingIdentities(long account);
|
List<EntityIdentity> getSynchronizingIdentities(long account);
|
||||||
|
|
||||||
@Query("SELECT * FROM identity WHERE id = :id")
|
|
||||||
EntityIdentity getIdentity(long id);
|
|
||||||
|
|
||||||
@Query("SELECT * FROM identity" +
|
|
||||||
" WHERE account = :account AND email = :email COLLATE NOCASE" +
|
|
||||||
" ORDER BY CASE WHEN synchronize THEN 0 ELSE 1 END" +
|
|
||||||
" LIMIT 1")
|
|
||||||
EntityIdentity getIdentity(long account, String email);
|
|
||||||
|
|
||||||
@Query("SELECT COUNT(*) FROM identity WHERE synchronize")
|
@Query("SELECT COUNT(*) FROM identity WHERE synchronize")
|
||||||
int getSynchronizingIdentityCount();
|
int getSynchronizingIdentityCount();
|
||||||
|
|
||||||
|
@Query("SELECT * FROM identity WHERE id = :id")
|
||||||
|
EntityIdentity getIdentity(long id);
|
||||||
|
|
||||||
@Insert
|
@Insert
|
||||||
long insertIdentity(EntityIdentity identity);
|
long insertIdentity(EntityIdentity identity);
|
||||||
|
|
||||||
|
|
|
@ -3915,7 +3915,15 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
||||||
if (message == null || message.identity == null)
|
if (message == null || message.identity == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
return db.identity().getIdentity(message.identity);
|
EntityIdentity identity = db.identity().getIdentity(message.identity);
|
||||||
|
if (identity == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
List<EntityIdentity> duplicates = db.identity().getIdentities(identity.account, identity.email);
|
||||||
|
if (duplicates == null || duplicates.size() > 1)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return identity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue