From b2b22c8b85d295e394b8beca72ceed5a0508e4d9 Mon Sep 17 00:00:00 2001 From: bjoern Date: Mon, 29 Aug 2022 13:55:00 +0200 Subject: [PATCH] order contact lists by "last seen" instead of name/address (#3562) order all contact lists by last_seen instead of name or address --- CHANGELOG.md | 2 ++ src/chat.rs | 6 +++--- src/contact.rs | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 341806823..0f36c61c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ - add `dc_contact_was_seen_recently()` #3560 ### Changes +- order contact lists by "last seen"; + this affects `dc_get_chat_contacts()`, `dc_get_contacts()` and `dc_get_blocked_contacts()` #3562 ### Fixes - do not emit notifications for blocked chats #3557 diff --git a/src/chat.rs b/src/chat.rs index a7060a84c..f681f55a7 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -2525,7 +2525,7 @@ pub async fn get_chat_contacts(context: &Context, chat_id: ChatId) -> Result(0), |ids| ids.collect::, _>>().map_err(Into::into), @@ -5456,8 +5456,8 @@ mod tests { assert_eq!( chat_id.get_encryption_info(&alice).await?, "No encryption:\n\ - bob@example.net\n\ - fiona@example.net" + fiona@example.net\n\ + bob@example.net" ); let direct_chat = bob.create_chat(&alice).await; diff --git a/src/contact.rs b/src/contact.rs index ade5ee721..66b25b7cd 100644 --- a/src/contact.rs +++ b/src/contact.rs @@ -716,7 +716,7 @@ impl Contact { AND c.blocked=0 \ AND (iif(c.name='',c.authname,c.name) LIKE ? OR c.addr LIKE ?) \ AND (1=? OR LENGTH(ps.verified_key_fingerprint)!=0) \ - ORDER BY LOWER(iif(c.name='',c.authname,c.name)||c.addr),c.id;", + ORDER BY c.last_seen DESC, c.id DESC;", sql::repeat_vars(self_addrs.len()) ), rusqlite::params_from_iter(params_iter(&self_addrs).chain(params_iterv![ @@ -768,7 +768,7 @@ impl Contact { AND id>? AND origin>=? AND blocked=0 - ORDER BY LOWER(iif(name='',authname,name)||addr),id;", + ORDER BY last_seen DESC, id DESC;", sql::repeat_vars(self_addrs.len()) ), rusqlite::params_from_iter(params_iter(&self_addrs).chain(params_iterv![ @@ -857,7 +857,7 @@ impl Contact { let list = context .sql .query_map( - "SELECT id FROM contacts WHERE id>? AND blocked!=0 ORDER BY LOWER(iif(name='',authname,name)||addr),id;", + "SELECT id FROM contacts WHERE id>? AND blocked!=0 ORDER BY last_seen DESC, id DESC;", paramsv![ContactId::LAST_SPECIAL], |row| row.get::<_, ContactId>(0), |ids| {