From f9d2fe710dc523c6045b0c38e8fa1da924d9d0e3 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sun, 17 Nov 2019 00:38:54 +0100 Subject: [PATCH] rename me-chat to saved-messages, use an appropriate icon --- assets/icon-saved-messages.png | Bin 0 -> 7822 bytes src/chat.rs | 20 +++++++++++++++++++- src/sql.rs | 10 ++++++++++ src/stock.rs | 4 +++- 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 assets/icon-saved-messages.png diff --git a/assets/icon-saved-messages.png b/assets/icon-saved-messages.png new file mode 100644 index 0000000000000000000000000000000000000000..e189cb863989cbc8e1ad0127c8b97c80851bcb1f GIT binary patch literal 7822 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 Result { Ok(blob.as_name().to_string()) } +pub fn update_saved_messages_icon(context: &Context) -> Result<(), Error> { + // if there is no saved-messages chat, there is nothing to update. this is no error. + if let Ok((chat_id, _)) = lookup_by_contact_id(context, DC_CONTACT_ID_SELF) { + let icon = include_bytes!("../assets/icon-saved-messages.png"); + let blob = BlobObject::create(context, "icon-saved-messages.png".to_string(), icon)?; + let icon = blob.as_name().to_string(); + + let mut chat = Chat::load_from_db(context, chat_id)?; + chat.param.set(Param::ProfileImage, icon); + chat.update_param(context)?; + } + Ok(()) +} + pub fn create_or_lookup_by_contact_id( context: &Context, contact_id: u32, @@ -652,6 +666,10 @@ pub fn create_or_lookup_by_contact_id( params![], )?; + if contact_id == DC_CONTACT_ID_SELF { + update_saved_messages_icon(context)?; + } + Ok((chat_id, create_blocked)) } diff --git a/src/sql.rs b/src/sql.rs index 2923083b4..396b939d3 100644 --- a/src/sql.rs +++ b/src/sql.rs @@ -7,6 +7,7 @@ use std::time::Duration; use rusqlite::{Connection, OpenFlags, Statement, NO_PARAMS}; use thread_local_object::ThreadLocal; +use crate::chat::update_saved_messages_icon; use crate::constants::ShowEmails; use crate::context::Context; use crate::dc_tools::*; @@ -495,6 +496,7 @@ fn open( let mut dbversion = dbversion_before_update; let mut recalc_fingerprints = 0; let mut update_file_paths = 0; + let mut update_icons = false; if dbversion < 1 { info!(context, "[migration] v1"); @@ -822,6 +824,11 @@ fn open( } sql.set_raw_config_int(context, "dbversion", 57)?; } + if dbversion < 58 { + info!(context, "[migration] v58"); + update_icons = true; + sql.set_raw_config_int(context, "dbversion", 58)?; + } // (2) updates that require high-level objects // (the structure is complete now and all objects are usable) @@ -873,6 +880,9 @@ fn open( sql.set_raw_config(context, "backup_for", None)?; } + if update_icons { + update_saved_messages_icon(context)?; + } } info!(context, "Opened {:?}.", dbfile.as_ref(),); diff --git a/src/stock.rs b/src/stock.rs index 7bafccb58..54ae4a23b 100644 --- a/src/stock.rs +++ b/src/stock.rs @@ -112,8 +112,10 @@ pub enum StockMessage { Location = 66, #[strum(props(fallback = "Sticker"))] Sticker = 67, - #[strum(props(fallback = "Device Messages"))] + #[strum(props(fallback = "Device messages"))] DeviceMessages = 68, + #[strum(props(fallback = "Saved messages"))] + SavedMessages = 69, } impl StockMessage {