diff --git a/src/config.rs b/src/config.rs index 3562cfd1a..6e08fd3f8 100644 --- a/src/config.rs +++ b/src/config.rs @@ -9,6 +9,7 @@ use crate::constants::DC_VERSION_STR; use crate::context::Context; use crate::dc_tools::*; use crate::events::EventType; +use crate::job; use crate::message::MsgId; use crate::mimefactory::RECOMMENDED_FILE_SIZE; use crate::stock::StockMessage; @@ -236,6 +237,11 @@ impl Context { let value = value.map(improve_single_line_input); self.sql.set_raw_config(self, key, value.as_deref()).await } + Config::DeleteServerAfter => { + let ret = self.sql.set_raw_config(self, key, value).await; + job::schedule_resync(self).await; + ret + } _ => self.sql.set_raw_config(self, key, value).await, } } diff --git a/src/job.rs b/src/job.rs index 12c427d94..8213d1e17 100644 --- a/src/job.rs +++ b/src/job.rs @@ -1063,6 +1063,15 @@ async fn send_mdn(context: &Context, msg: &Message) -> Result<()> { Ok(()) } +pub(crate) async fn schedule_resync(context: &Context) { + kill_action(context, Action::ResyncFolders).await; + add( + context, + Job::new(Action::ResyncFolders, 0, Params::new(), 0), + ) + .await; +} + /// Creates a job. pub fn create(action: Action, foreign_id: i32, param: Params, delay_seconds: i64) -> Result { ensure!(