diff --git a/deltachat-ffi/deltachat.h b/deltachat-ffi/deltachat.h index 6073c78c6..1c5a8303e 100644 --- a/deltachat-ffi/deltachat.h +++ b/deltachat-ffi/deltachat.h @@ -350,6 +350,7 @@ char* dc_get_blobdir (const dc_context_t* context); * The type `jitsi:` may be handled by external apps. * If no type is prefixed, the videochat is handled completely in a browser. * - `bot` = Set to "1" if this is a bot. E.g. prevents adding the "Device messages" and "Saved messages" chats. + * - `prefetch` = 1=fetch most recent existing messages on configure (default), 0=do not fetch on configure * * If you want to retrieve a value, use dc_get_config(). * diff --git a/src/config.rs b/src/config.rs index 15973e8f7..c554b194e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -69,6 +69,9 @@ pub enum Config { #[strum(props(default = "0"))] // also change MediaQuality.default() on changes MediaQuality, + #[strum(props(default = "1"))] + Prefetch, + #[strum(props(default = "0"))] KeyGenType, diff --git a/src/configure/mod.rs b/src/configure/mod.rs index 55c9833a0..7caaad12b 100644 --- a/src/configure/mod.rs +++ b/src/configure/mod.rs @@ -353,11 +353,13 @@ async fn configure(ctx: &Context, param: &mut LoginParam) -> Result<()> { e2ee::ensure_secret_key_exists(ctx).await?; info!(ctx, "key generation completed"); - job::add( - ctx, - job::Job::new(Action::FetchExistingMsgs, 0, Params::new(), 0), - ) - .await; + if ctx.get_config_bool(Config::Prefetch).await { + job::add( + ctx, + job::Job::new(Action::FetchExistingMsgs, 0, Params::new(), 0), + ) + .await; + } progress!(ctx, 940); update_device_chats_handle.await?;