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 &#x // 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 {