diff --git a/src/chat.rs b/src/chat.rs
index aa5b54824..9d36f30d8 100644
--- a/src/chat.rs
+++ b/src/chat.rs
@@ -5950,8 +5950,7 @@ mod tests {
let t = TestContext::new().await;
// create 3 chats, wait 1 second in between to get a reliable order (we order by time)
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("foo".to_string());
+ let mut msg = Message::new_text("foo".to_string());
let msg_id = add_device_msg(&t, None, Some(&mut msg)).await.unwrap();
let chat_id1 = message::Message::load_from_db(&t, msg_id)
.await
@@ -6028,8 +6027,7 @@ mod tests {
ChatVisibility::Pinned,
);
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("hi!".into());
+ let mut msg = Message::new_text("hi!".into());
let sent_msg = bob.send_msg(bob_chat_id, &mut msg).await;
let msg = alice.recv_msg(&sent_msg).await;
assert_eq!(msg.chat_id, alice_chat_id);
@@ -6668,8 +6666,7 @@ mod tests {
let alice_chat = alice.create_chat(&bob).await;
let bob_chat = bob.create_chat(&alice).await;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("Hi Bob".to_owned());
+ let mut msg = Message::new_text("Hi Bob".to_owned());
let sent_msg = alice.send_msg(alice_chat.get_id(), &mut msg).await;
let msg = bob.recv_msg(&sent_msg).await;
@@ -6720,8 +6717,7 @@ mod tests {
let received_msg = bob.recv_msg(&sent_msg).await;
// Bob quotes received message and sends a reply to Alice.
- let mut reply = Message::new(Viewtype::Text);
- reply.set_text("Reply".to_owned());
+ let mut reply = Message::new_text("Reply".to_owned());
reply.set_quote(&bob, Some(&received_msg)).await?;
let sent_reply = bob.send_msg(bob_chat.id, &mut reply).await;
let received_reply = alice.recv_msg(&sent_reply).await;
@@ -6804,8 +6800,7 @@ mod tests {
let group_id =
create_group_chat(&alice, ProtectionStatus::Unprotected, "secretgrpname").await?;
add_contact_to_chat(&alice, group_id, bob_id).await?;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("bla foo".to_owned());
+ let mut msg = Message::new_text("bla foo".to_owned());
let sent_msg = alice.send_msg(group_id, &mut msg).await;
assert!(sent_msg.payload().contains("secretgrpname"));
assert!(sent_msg.payload().contains("secretname"));
diff --git a/src/chatlist.rs b/src/chatlist.rs
index f1ad18d90..5505c1d96 100644
--- a/src/chatlist.rs
+++ b/src/chatlist.rs
@@ -476,7 +476,6 @@ mod tests {
add_contact_to_chat, create_group_chat, get_chat_contacts, remove_contact_from_chat,
send_text_msg, ProtectionStatus,
};
- use crate::message::Viewtype;
use crate::receive_imf::receive_imf;
use crate::stock_str::StockMessage;
use crate::test_utils::TestContext;
@@ -510,8 +509,7 @@ mod tests {
// Instead of setting drafts for chat_id1 and chat_id3, we could also sleep
// 2s here.
for chat_id in &[chat_id1, chat_id3, chat_id2] {
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("hello".to_string());
+ let mut msg = Message::new_text("hello".to_string());
chat_id.set_draft(&t, Some(&mut msg)).await.unwrap();
}
@@ -755,8 +753,7 @@ mod tests {
.await
.unwrap();
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("foo:\nbar \r\n test".to_string());
+ let mut msg = Message::new_text("foo:\nbar \r\n test".to_string());
chat_id1.set_draft(&t, Some(&mut msg)).await.unwrap();
let chats = Chatlist::try_load(&t, 0, None, None).await.unwrap();
diff --git a/src/configure.rs b/src/configure.rs
index 58f5aab5b..33f60c564 100644
--- a/src/configure.rs
+++ b/src/configure.rs
@@ -31,7 +31,7 @@ use crate::login_param::{
ConfiguredCertificateChecks, ConfiguredLoginParam, ConfiguredServerLoginParam,
ConnectionCandidate, EnteredCertificateChecks, EnteredLoginParam,
};
-use crate::message::{Message, Viewtype};
+use crate::message::Message;
use crate::oauth2::get_oauth2_addr;
use crate::provider::{Protocol, Socket, UsernamePattern};
use crate::smtp::Smtp;
@@ -142,8 +142,7 @@ async fn on_configure_completed(
}
if !provider.after_login_hint.is_empty() {
- let mut msg = Message::new(Viewtype::Text);
- msg.text = provider.after_login_hint.to_string();
+ let mut msg = Message::new_text(provider.after_login_hint.to_string());
if chat::add_device_msg(context, Some("core-provider-info"), Some(&mut msg))
.await
.is_err()
@@ -156,9 +155,9 @@ async fn on_configure_completed(
if let Some(new_addr) = context.get_config(Config::ConfiguredAddr).await? {
if let Some(old_addr) = old_addr {
if !addr_cmp(&new_addr, &old_addr) {
- let mut msg = Message::new(Viewtype::Text);
- msg.text =
- stock_str::aeap_explanation_and_link(context, &old_addr, &new_addr).await;
+ let mut msg = Message::new_text(
+ stock_str::aeap_explanation_and_link(context, &old_addr, &new_addr).await,
+ );
chat::add_device_msg(context, None, Some(&mut msg))
.await
.context("Cannot add AEAP explanation")
diff --git a/src/context.rs b/src/context.rs
index 9e9a232d7..04ec1c74d 100644
--- a/src/context.rs
+++ b/src/context.rs
@@ -28,7 +28,7 @@ use crate::events::{Event, EventEmitter, EventType, Events};
use crate::imap::{FolderMeaning, Imap, ServerMetadata};
use crate::key::{load_self_public_key, load_self_secret_key, DcKey as _};
use crate::login_param::{ConfiguredLoginParam, EnteredLoginParam};
-use crate::message::{self, Message, MessageState, MsgId, Viewtype};
+use crate::message::{self, Message, MessageState, MsgId};
use crate::param::{Param, Params};
use crate::peer_channels::Iroh;
use crate::peerstate::Peerstate;
@@ -1178,8 +1178,7 @@ impl Context {
.set_protection(self, ProtectionStatus::Protected, time(), Some(contact_id))
.await?;
- let mut msg = Message::new(Viewtype::Text);
- msg.text = self.get_self_report().await?;
+ let mut msg = Message::new_text(self.get_self_report().await?);
chat_id.set_draft(self, Some(&mut msg)).await?;
@@ -1778,12 +1777,10 @@ mod tests {
assert!(res.is_empty());
// Add messages to chat with Bob.
- let mut msg1 = Message::new(Viewtype::Text);
- msg1.set_text("foobar".to_string());
+ let mut msg1 = Message::new_text("foobar".to_string());
send_msg(&alice, chat.id, &mut msg1).await?;
- let mut msg2 = Message::new(Viewtype::Text);
- msg2.set_text("barbaz".to_string());
+ let mut msg2 = Message::new_text("barbaz".to_string());
send_msg(&alice, chat.id, &mut msg2).await?;
alice.send_text(chat.id, "Δ-Chat").await;
@@ -1886,8 +1883,7 @@ mod tests {
.await;
// Add 999 messages
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("foobar".to_string());
+ let mut msg = Message::new_text("foobar".to_string());
for _ in 0..999 {
send_msg(&alice, chat.id, &mut msg).await?;
}
diff --git a/src/download.rs b/src/download.rs
index 7fa657f90..243c45118 100644
--- a/src/download.rs
+++ b/src/download.rs
@@ -318,8 +318,7 @@ mod tests {
let t = TestContext::new_alice().await;
let chat = t.create_chat_with_contact("Bob", "bob@example.org").await;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("Hi Bob".to_owned());
+ let mut msg = Message::new_text("Hi Bob".to_owned());
let msg_id = send_msg(&t, chat.id, &mut msg).await?;
let msg = Message::load_from_db(&t, msg_id).await?;
assert_eq!(msg.download_state(), DownloadState::Done);
diff --git a/src/ephemeral.rs b/src/ephemeral.rs
index d1d40a8ac..276119028 100644
--- a/src/ephemeral.rs
+++ b/src/ephemeral.rs
@@ -223,8 +223,9 @@ impl ChatId {
self.inner_set_ephemeral_timer(context, timer).await?;
if self.is_promoted(context).await? {
- let mut msg = Message::new(Viewtype::Text);
- msg.text = stock_ephemeral_timer_changed(context, timer, ContactId::SELF).await;
+ let mut msg = Message::new_text(
+ stock_ephemeral_timer_changed(context, timer, ContactId::SELF).await,
+ );
msg.param.set_cmd(SystemMessage::EphemeralTimerChanged);
if let Err(err) = send_msg(context, self, &mut msg).await {
error!(
@@ -1362,8 +1363,7 @@ mod tests {
chat.id
.set_ephemeral_timer(&alice, Timer::Enabled { duration })
.await?;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("hi".to_string());
+ let mut msg = Message::new_text("hi".to_string());
assert!(chat::send_msg_sync(&alice, chat.id, &mut msg)
.await
.is_err());
@@ -1393,8 +1393,7 @@ mod tests {
let sent = alice.pop_sent_msg().await;
bob.recv_msg(&sent).await;
- let mut poi_msg = Message::new(Viewtype::Text);
- poi_msg.text = "Here".to_string();
+ let mut poi_msg = Message::new_text("Here".to_string());
poi_msg.set_location(10.0, 20.0);
let alice_sent_message = alice.send_msg(chat.id, &mut poi_msg).await;
diff --git a/src/html.rs b/src/html.rs
index ee6b469b6..380cfc65b 100644
--- a/src/html.rs
+++ b/src/html.rs
@@ -525,8 +525,7 @@ test some special html-characters as < > and & but also " and
// alice sends a message with html-part to bob
let chat_id = alice.create_chat(&bob).await.id;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("plain text".to_string());
+ let mut msg = Message::new_text("plain text".to_string());
msg.set_html(Some("html text".to_string()));
assert!(msg.mime_modified);
chat::send_msg(&alice, chat_id, &mut msg).await.unwrap();
diff --git a/src/imap.rs b/src/imap.rs
index f23045791..afb9858cd 100644
--- a/src/imap.rs
+++ b/src/imap.rs
@@ -36,7 +36,7 @@ use crate::log::LogExt;
use crate::login_param::{
prioritize_server_login_params, ConfiguredLoginParam, ConfiguredServerLoginParam,
};
-use crate::message::{self, Message, MessageState, MessengerMessage, MsgId, Viewtype};
+use crate::message::{self, Message, MessageState, MessengerMessage, MsgId};
use crate::mimeparser;
use crate::net::proxy::ProxyConfig;
use crate::net::session::SessionStream;
@@ -426,8 +426,7 @@ impl Imap {
&& err_str.to_lowercase().contains("authentication")
&& context.get_config_bool(Config::NotifyAboutWrongPw).await?
{
- let mut msg = Message::new(Viewtype::Text);
- msg.text.clone_from(&message);
+ let mut msg = Message::new_text(message);
if let Err(e) = chat::add_device_msg_with_importance(
context,
None,
diff --git a/src/imex/transfer.rs b/src/imex/transfer.rs
index d280dd8f8..7298834a2 100644
--- a/src/imex/transfer.rs
+++ b/src/imex/transfer.rs
@@ -42,7 +42,7 @@ use tokio_util::sync::CancellationToken;
use crate::chat::add_device_msg;
use crate::context::Context;
use crate::imex::BlobDirContents;
-use crate::message::{Message, Viewtype};
+use crate::message::Message;
use crate::qr::Qr;
use crate::stock_str::backup_transfer_msg_body;
use crate::tools::{create_id, time, TempPathGuard};
@@ -200,8 +200,7 @@ impl BackupProvider {
info!(context, "Received backup reception acknowledgement.");
context.emit_event(EventType::ImexProgress(1000));
- let mut msg = Message::new(Viewtype::Text);
- msg.text = backup_transfer_msg_body(&context).await;
+ let mut msg = Message::new_text(backup_transfer_msg_body(&context).await);
add_device_msg(&context, None, Some(&mut msg)).await?;
Ok(())
@@ -369,6 +368,7 @@ mod tests {
use std::time::Duration;
use crate::chat::{get_chat_msgs, send_msg, ChatItem};
+ use crate::message::Viewtype;
use crate::test_utils::TestContextManager;
use super::*;
@@ -382,8 +382,7 @@ mod tests {
// Write a message in the self chat
let self_chat = ctx0.get_self_chat().await;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("hi there".to_string());
+ let mut msg = Message::new_text("hi there".to_string());
send_msg(&ctx0, self_chat.id, &mut msg).await.unwrap();
// Send an attachment in the self chat
diff --git a/src/location.rs b/src/location.rs
index 289761f1d..f2fa919b8 100644
--- a/src/location.rs
+++ b/src/location.rs
@@ -290,8 +290,7 @@ pub async fn send_locations_to_chat(
)
.await?;
if 0 != seconds && !is_sending_locations_before {
- let mut msg = Message::new(Viewtype::Text);
- msg.text = stock_str::msg_location_enabled(context).await;
+ let mut msg = Message::new_text(stock_str::msg_location_enabled(context).await);
msg.param.set_cmd(SystemMessage::LocationStreamingEnabled);
chat::send_msg(context, chat_id, &mut msg)
.await
diff --git a/src/message.rs b/src/message.rs
index 3e8c3f70b..5fe82c134 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -2342,8 +2342,7 @@ mod tests {
let chat = d.create_chat_with_contact("", "dest@example.com").await;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("Quoted message".to_string());
+ let mut msg = Message::new_text("Quoted message".to_string());
// Prepare message for sending, so it gets a Message-Id.
assert!(msg.rfc724_mid.is_empty());
@@ -2409,9 +2408,8 @@ mod tests {
add_contact_to_chat(alice, alice_group, alice_flubby_contact_id).await?;
// Alice quotes encrypted message in unencrypted chat.
- let mut msg = Message::new(Viewtype::Text);
+ let mut msg = Message::new_text("unencrypted".to_string());
msg.set_quote(alice, Some(&alice_received_message)).await?;
- msg.set_text("unencrypted".to_string());
chat::send_msg(alice, alice_group, &mut msg).await?;
let bob_received_message = bob.recv_msg(&alice.pop_sent_msg().await).await;
@@ -2469,8 +2467,7 @@ mod tests {
.unwrap();
let contact = Contact::get_by_id(&alice, contact_id).await.unwrap();
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("bla blubb".to_string());
+ let mut msg = Message::new_text("bla blubb".to_string());
msg.set_override_sender_name(Some("over ride".to_string()));
assert_eq!(
msg.get_override_sender_name(),
@@ -2517,8 +2514,7 @@ mod tests {
let alice = TestContext::new_alice().await;
let bob = TestContext::new_bob().await;
let alice_chat = alice.create_chat(&bob).await;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("this is the text!".to_string());
+ let mut msg = Message::new_text("this is the text!".to_string());
// alice sends to bob,
assert_eq!(Chatlist::try_load(&bob, 0, None, None).await?.len(), 0);
@@ -2603,8 +2599,7 @@ mod tests {
}
// check outgoing messages states on sender side
- let mut alice_msg = Message::new(Viewtype::Text);
- alice_msg.set_text("hi!".to_string());
+ let mut alice_msg = Message::new_text("hi!".to_string());
assert_eq!(alice_msg.get_state(), MessageState::Undefined); // message not yet in db, assert_state() won't work
alice_chat
@@ -2787,8 +2782,7 @@ def hello():
let chat = alice
.create_chat_with_contact("Bob", "bob@example.org")
.await;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("hi".to_string());
+ let mut msg = Message::new_text("hi".to_string());
assert!(chat::send_msg_sync(&alice, chat.id, &mut msg)
.await
.is_err());
diff --git a/src/mimefactory.rs b/src/mimefactory.rs
index 5983a1f93..4cafd4f38 100644
--- a/src/mimefactory.rs
+++ b/src/mimefactory.rs
@@ -1982,8 +1982,7 @@ mod tests {
group_id: ChatId,
quote: Option<&Message>,
) -> Result {
- let mut new_msg = Message::new(Viewtype::Text);
- new_msg.set_text("Hi".to_string());
+ let mut new_msg = Message::new_text("Hi".to_string());
if let Some(q) = quote {
new_msg.set_quote(t, Some(q)).await?;
}
@@ -2069,8 +2068,7 @@ mod tests {
let chat_id = ChatId::create_for_contact(&t, contact_id).await.unwrap();
- let mut new_msg = Message::new(Viewtype::Text);
- new_msg.set_text("Hi".to_string());
+ let mut new_msg = Message::new_text("Hi".to_string());
new_msg.chat_id = chat_id;
chat::prepare_msg(&t, chat_id, &mut new_msg).await.unwrap();
@@ -2177,8 +2175,7 @@ mod tests {
let chat_id = chats.get_chat_id(0).unwrap();
chat_id.accept(context).await.unwrap();
- let mut new_msg = Message::new(Viewtype::Text);
- new_msg.set_text("Hi".to_string());
+ let mut new_msg = Message::new_text("Hi".to_string());
new_msg.chat_id = chat_id;
chat::prepare_msg(context, chat_id, &mut new_msg)
.await
@@ -2295,8 +2292,7 @@ mod tests {
// send message to bob: that should get multipart/mixed because of the avatar moved to inner header;
// make sure, `Subject:` stays in the outer header (imf header)
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("this is the text!".to_string());
+ let mut msg = Message::new_text("this is the text!".to_string());
let sent_msg = t.send_msg(chat.id, &mut msg).await;
let mut payload = sent_msg.payload().splitn(3, "\r\n\r\n");
@@ -2362,8 +2358,7 @@ mod tests {
// send message to bob: that should get multipart/signed.
// `Subject:` is protected by copying it.
// make sure, `Subject:` stays in the outer header (imf header)
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("this is the text!".to_string());
+ let mut msg = Message::new_text("this is the text!".to_string());
let sent_msg = t.send_msg(chat.id, &mut msg).await;
let mut payload = sent_msg.payload().splitn(4, "\r\n\r\n");
@@ -2496,8 +2491,7 @@ mod tests {
// send message to bob: that should get multipart/mixed because of the avatar moved to inner header;
// make sure, `Subject:` stays in the outer header (imf header)
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("this is the text!".to_string());
+ let mut msg = Message::new_text("this is the text!".to_string());
let sent_msg = t.send_msg(chat.id, &mut msg).await;
let payload = sent_msg.payload();
diff --git a/src/mimeparser.rs b/src/mimeparser.rs
index 8fbb98eda..db5ec6556 100644
--- a/src/mimeparser.rs
+++ b/src/mimeparser.rs
@@ -3600,8 +3600,7 @@ On 2020-10-25, Bob wrote:
for draft in [false, true] {
let chat = t.get_self_chat().await;
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text(long_txt.clone());
+ let mut msg = Message::new_text(long_txt.clone());
if draft {
chat.id.set_draft(&t, Some(&mut msg)).await?;
}
diff --git a/src/quota.rs b/src/quota.rs
index 9680a2046..0070a76ca 100644
--- a/src/quota.rs
+++ b/src/quota.rs
@@ -11,7 +11,7 @@ use crate::config::Config;
use crate::context::Context;
use crate::imap::scan_folders::get_watched_folders;
use crate::imap::session::Session as ImapSession;
-use crate::message::{Message, Viewtype};
+use crate::message::Message;
use crate::tools::{self, time_elapsed};
use crate::{stock_str, EventType};
@@ -142,8 +142,8 @@ impl Context {
Some(&highest.to_string()),
)
.await?;
- let mut msg = Message::new(Viewtype::Text);
- msg.text = stock_str::quota_exceeding(self, highest).await;
+ let mut msg =
+ Message::new_text(stock_str::quota_exceeding(self, highest).await);
add_device_msg_with_importance(self, None, Some(&mut msg), true).await?;
} else if highest <= QUOTA_ALLCLEAR_PERCENTAGE {
self.set_config_internal(Config::QuotaExceeding, None)
diff --git a/src/reaction.rs b/src/reaction.rs
index b621e914a..6bb71f2a4 100644
--- a/src/reaction.rs
+++ b/src/reaction.rs
@@ -26,7 +26,7 @@ use crate::chatlist_events;
use crate::contact::ContactId;
use crate::context::Context;
use crate::events::EventType;
-use crate::message::{rfc724_mid_exists, Message, MsgId, Viewtype};
+use crate::message::{rfc724_mid_exists, Message, MsgId};
use crate::param::Param;
/// A single reaction consisting of multiple emoji sequences.
@@ -229,8 +229,7 @@ pub async fn send_reaction(context: &Context, msg_id: MsgId, reaction: &str) ->
let chat_id = msg.chat_id;
let reaction: Reaction = reaction.into();
- let mut reaction_msg = Message::new(Viewtype::Text);
- reaction_msg.text = reaction.as_str().to_string();
+ let mut reaction_msg = Message::new_text(reaction.as_str().to_string());
reaction_msg.set_reaction();
reaction_msg.in_reply_to = Some(msg.rfc724_mid);
reaction_msg.hidden = true;
diff --git a/src/receive_imf.rs b/src/receive_imf.rs
index 3bf4eb375..f3d513a60 100644
--- a/src/receive_imf.rs
+++ b/src/receive_imf.rs
@@ -1093,8 +1093,8 @@ async fn add_parts(
.await?;
let now = tools::time();
let update_config = if last_time.saturating_add(24 * 60 * 60) <= now {
- let mut msg = Message::new(Viewtype::Text);
- msg.text = stock_str::cant_decrypt_outgoing_msgs(context).await;
+ let mut msg =
+ Message::new_text(stock_str::cant_decrypt_outgoing_msgs(context).await);
chat::add_device_msg(context, None, Some(&mut msg))
.await
.log_err(context)
diff --git a/src/receive_imf/tests.rs b/src/receive_imf/tests.rs
index 905330629..4868a69e8 100644
--- a/src/receive_imf/tests.rs
+++ b/src/receive_imf/tests.rs
@@ -2178,8 +2178,7 @@ async fn test_no_smtp_job_for_self_chat() -> Result<()> {
let bob = &tcm.bob().await;
bob.set_config_bool(Config::BccSelf, false).await?;
let chat_id = bob.get_self_chat().await.id;
- let mut msg = Message::new(Viewtype::Text);
- msg.text = "Happy birthday to me".to_string();
+ let mut msg = Message::new_text("Happy birthday to me".to_string());
chat::send_msg(bob, chat_id, &mut msg).await?;
assert!(bob.pop_sent_msg_opt(Duration::ZERO).await.is_none());
Ok(())
@@ -3298,8 +3297,7 @@ async fn test_outgoing_private_reply_multidevice() -> Result<()> {
assert_eq!(received_group.name, "Group");
assert_eq!(received_group.can_send(&alice1).await?, false); // Can't send because it's Blocked::Request
- let mut msg_out = Message::new(Viewtype::Text);
- msg_out.set_text("Private reply".to_string());
+ let mut msg_out = Message::new_text("Private reply".to_string());
assert_eq!(received_group.blocked, Blocked::Request);
msg_out.set_quote(&alice1, Some(&received)).await?;
@@ -3506,8 +3504,7 @@ async fn test_no_private_reply_to_blocked_account() -> Result<()> {
let received_group = Chat::load_from_db(&alice, received.chat_id).await?;
assert_eq!(received_group.typ, Chattype::Group);
- let mut msg_out = Message::new(Viewtype::Text);
- msg_out.set_text("Private reply".to_string());
+ let mut msg_out = Message::new_text("Private reply".to_string());
msg_out.set_quote(&alice, Some(&received)).await?;
let alice_bob_chat = alice.create_chat(&bob).await;
diff --git a/src/sql.rs b/src/sql.rs
index c25cb654b..0356f851c 100644
--- a/src/sql.rs
+++ b/src/sql.rs
@@ -17,7 +17,7 @@ use crate::ephemeral::start_ephemeral_timers;
use crate::imex::BLOBS_BACKUP_NAME;
use crate::location::delete_orphaned_poi_locations;
use crate::log::LogExt;
-use crate::message::{Message, MsgId, Viewtype};
+use crate::message::{Message, MsgId};
use crate::net::dns::prune_dns_cache;
use crate::net::prune_connection_history;
use crate::param::{Param, Params};
@@ -246,8 +246,7 @@ impl Sql {
// We now always watch all folders and delete messages there if delete_server is enabled.
// So, for people who have delete_server enabled, disable it and add a hint to the devicechat:
if context.get_config_delete_server_after().await?.is_some() {
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text(stock_str::delete_server_turned_off(context).await);
+ let mut msg = Message::new_text(stock_str::delete_server_turned_off(context).await);
add_device_msg(context, None, Some(&mut msg)).await?;
context
.set_config_internal(Config::DeleteServerAfter, Some("0"))
@@ -1128,8 +1127,7 @@ mod tests {
let t = TestContext::new_alice().await;
let chat = t.create_chat_with_contact("bob", "bob@example.com").await;
- let mut new_draft = Message::new(Viewtype::Text);
- new_draft.set_text("This is my draft".to_string());
+ let mut new_draft = Message::new_text("This is my draft".to_string());
chat.id.set_draft(&t, Some(&mut new_draft)).await.unwrap();
housekeeping(&t).await.unwrap();
diff --git a/src/stock_str.rs b/src/stock_str.rs
index a9785f7da..d03cc193d 100644
--- a/src/stock_str.rs
+++ b/src/stock_str.rs
@@ -1419,8 +1419,7 @@ impl Context {
msg.param.set(Param::File, blob.as_name());
chat::add_device_msg(self, Some("core-welcome-image"), Some(&mut msg)).await?;
- let mut msg = Message::new(Viewtype::Text);
- msg.text = welcome_message(self).await;
+ let mut msg = Message::new_text(welcome_message(self).await);
chat::add_device_msg(self, Some("core-welcome"), Some(&mut msg)).await?;
Ok(())
}
diff --git a/src/summary.rs b/src/summary.rs
index bcc4f10e8..4881b0a67 100644
--- a/src/summary.rs
+++ b/src/summary.rs
@@ -305,8 +305,7 @@ mod tests {
.unwrap();
let some_text = " bla \t\n\tbla\n\t".to_string();
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text(some_text.to_string());
+ let msg = Message::new_text(some_text.to_string());
assert_summary_texts(&msg, ctx, "bla bla").await; // for simple text, the type is not added to the summary
let mut msg = Message::new(Viewtype::Image);
@@ -415,8 +414,7 @@ mod tests {
}
// Forwarded
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text(some_text.clone());
+ let mut msg = Message::new_text(some_text.clone());
msg.param.set_int(Param::Forwarded, 1);
assert_eq!(msg.get_summary_text(ctx).await, "Forwarded: bla bla"); // for simple text, the type is not added to the summary
assert_eq!(msg.get_summary_text_without_prefix(ctx).await, "bla bla"); // skipping prefix used for reactions summaries
diff --git a/src/test_utils.rs b/src/test_utils.rs
index 507529889..4a8473bc0 100644
--- a/src/test_utils.rs
+++ b/src/test_utils.rs
@@ -730,8 +730,7 @@ impl TestContext {
/// [`TestContext::recv_msg`] with the returned [`SentMessage`] if it wants to receive
/// the message.
pub async fn send_text(&self, chat_id: ChatId, txt: &str) -> SentMessage<'_> {
- let mut msg = Message::new(Viewtype::Text);
- msg.text = txt.to_string();
+ let mut msg = Message::new_text(txt.to_string());
self.send_msg(chat_id, &mut msg).await
}
diff --git a/src/tests/verified_chats.rs b/src/tests/verified_chats.rs
index 564cc231d..c8531c584 100644
--- a/src/tests/verified_chats.rs
+++ b/src/tests/verified_chats.rs
@@ -6,7 +6,7 @@ use crate::chatlist::Chatlist;
use crate::config::Config;
use crate::constants::{Chattype, DC_GCL_FOR_FORWARDING};
use crate::contact::{Contact, ContactId, Origin};
-use crate::message::{Message, Viewtype};
+use crate::message::Message;
use crate::mimefactory::MimeFactory;
use crate::mimeparser::SystemMessage;
use crate::receive_imf::receive_imf;
@@ -716,8 +716,7 @@ async fn test_break_protection_then_verify_again() -> Result<()> {
assert!(!alice_bob_chat.can_send(&alice).await?);
// Alice's UI should still be able to save a draft, which Alice started to type right when she got Bob's message:
- let mut msg = Message::new(Viewtype::Text);
- msg.set_text("Draftttt".to_string());
+ let mut msg = Message::new_text("Draftttt".to_string());
alice_bob_chat.id.set_draft(&alice, Some(&mut msg)).await?;
assert_eq!(
alice_bob_chat.id.get_draft(&alice).await?.unwrap().text,
diff --git a/src/tools.rs b/src/tools.rs
index 2b0f6618c..89c50759d 100644
--- a/src/tools.rs
+++ b/src/tools.rs
@@ -250,8 +250,7 @@ async fn maybe_warn_on_bad_time(context: &Context, now: i64, known_past_timestam
async fn maybe_warn_on_outdated(context: &Context, now: i64, approx_compile_time: i64) {
if now > approx_compile_time + DC_OUTDATED_WARNING_DAYS * 24 * 60 * 60 {
- let mut msg = Message::new(Viewtype::Text);
- msg.text = stock_str::update_reminder_msg_body(context).await;
+ let mut msg = Message::new_text(stock_str::update_reminder_msg_body(context).await);
if let Some(timestamp) = chrono::DateTime::::from_timestamp(now, 0) {
add_device_msg(
context,
diff --git a/src/webxdc/maps_integration.rs b/src/webxdc/maps_integration.rs
index 38d3f5c0b..4209d8710 100644
--- a/src/webxdc/maps_integration.rs
+++ b/src/webxdc/maps_integration.rs
@@ -36,7 +36,7 @@ use crate::{chat, location};
use std::collections::{hash_map, HashMap};
use crate::context::Context;
-use crate::message::{Message, MsgId, Viewtype};
+use crate::message::{Message, MsgId};
use crate::chat::ChatId;
use crate::color::color_int_to_hex_string;
@@ -85,8 +85,7 @@ pub(crate) async fn intercept_send_update(
ChatId::create_for_contact(context, ContactId::SELF).await?
};
- let mut poi_msg = Message::new(Viewtype::Text);
- poi_msg.text = label;
+ let mut poi_msg = Message::new_text(label);
poi_msg.set_location(lat, lng);
chat::send_msg(context, chat_id, &mut poi_msg).await?;
} else {