From 3686048ab6aac1bff30ee1f5b6923684500bd3cd Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Sat, 28 Mar 2020 21:58:46 +0300 Subject: [PATCH] chatlist: hide all expired messages before loading --- src/chat.rs | 22 ++++++++++++++++++++++ src/chatlist.rs | 2 ++ 2 files changed, 24 insertions(+) diff --git a/src/chat.rs b/src/chat.rs index 69b8ca0ad..eb022d3d5 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -1630,6 +1630,28 @@ pub fn marknoticed_all_chats(context: &Context) -> Result<(), Error> { Ok(()) } +pub fn delete_device_expired_messages_all_chats(context: &Context) -> Result<(), Error> { + let chat_ids = context.sql.query_map( + "SELECT id FROM chats WHERE id > 9", + params![], + |row| row.get::<_, ChatId>(0), + |ids| { + let mut ret = Vec::new(); + for id in ids { + if let Ok(chat_id) = id { + ret.push(chat_id) + } + } + Ok(ret) + }, + )?; + + for chat_id in chat_ids { + chat_id.delete_device_expired_messages(context)?; + } + Ok(()) +} + pub fn get_chat_media( context: &Context, chat_id: ChatId, diff --git a/src/chatlist.rs b/src/chatlist.rs index cc58cb5f1..427f44977 100644 --- a/src/chatlist.rs +++ b/src/chatlist.rs @@ -92,6 +92,8 @@ impl Chatlist { query: Option<&str>, query_contact_id: Option, ) -> Result { + delete_device_expired_messages_all_chats(context)?; + let mut add_archived_link_item = false; let process_row = |row: &rusqlite::Row| {