Implement MessageSummary

This commit is contained in:
jikstra
2020-01-14 18:54:58 +01:00
parent 65ea815067
commit 1038d918bf
2 changed files with 16 additions and 9 deletions

View File

@@ -6,7 +6,7 @@ use crate::contact::*;
use crate::context::*; use crate::context::*;
use crate::error::Result; use crate::error::Result;
use crate::lot::Lot; use crate::lot::Lot;
use crate::message::{Message, MessageState, MsgId}; use crate::message::{Message, MessageState, MsgId, MessageSummary};
use crate::stock::StockMessage; use crate::stock::StockMessage;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
@@ -323,6 +323,8 @@ impl Chatlist {
self._get_summary(context, ret, chat, lastmsg_id) self._get_summary(context, ret, chat, lastmsg_id)
} }
pub fn get_summary_from_chat_id_json(&self, context: &Context, chat_id: u32) ->
pub fn _get_summary(&self, context: &Context, mut ret: Lot, chat: &Chat, lastmsg_id: MsgId) -> Lot { pub fn _get_summary(&self, context: &Context, mut ret: Lot, chat: &Chat, lastmsg_id: MsgId) -> Lot {
let mut lastcontact = None; let mut lastcontact = None;
@@ -344,7 +346,12 @@ impl Chatlist {
{ {
ret.text2 = Some(context.stock_str(StockMessage::NoMessages).to_string()); ret.text2 = Some(context.stock_str(StockMessage::NoMessages).to_string());
} else { } else {
ret.fill(&mut lastmsg.unwrap(), chat, lastcontact.as_ref(), context); let message_summary = MessageSummary::new(&mut lastmsg.unwrap(), chat, lastcontact.as_ref(), context);
ret.text1 = message_summary.text1;
ret.text1_meaning = message_summary.text1_meaning;
ret.text2 = message_summary.summarytext;
ret.timestamp = message_summary.timestamp;
ret.state = message_summary.state.into();
} }
ret ret

View File

@@ -714,11 +714,11 @@ impl MessageState {
#[derive(Debug, Default)] #[derive(Debug, Default)]
pub struct MessageSummary { pub struct MessageSummary {
text1: Option<String>, pub text1: Option<String>,
text1_meaning: Meaning, pub text1_meaning: Meaning,
text2: Option<String>, pub summarytext: Option<String>,
timestamp: i64, pub timestamp: i64,
state: MessageState pub state: MessageState
} }
impl MessageSummary { impl MessageSummary {
@@ -763,7 +763,7 @@ impl MessageSummary {
} }
} }
message_summary.text2 = Some(get_summarytext_by_raw( message_summary.summarytext = Some(get_summarytext_by_raw(
msg.viewtype, msg.viewtype,
msg.text.as_ref(), msg.text.as_ref(),
&msg.param, &msg.param,
@@ -791,7 +791,7 @@ impl Lot {
let message_summary = MessageSummary::new(msg, chat, contact, context); let message_summary = MessageSummary::new(msg, chat, contact, context);
self.text1 = message_summary.text1; self.text1 = message_summary.text1;
self.text1_meaning = message_summary.text1_meaning; self.text1_meaning = message_summary.text1_meaning;
self.text2 = message_summary.text2; self.text2 = message_summary.summarytext;
self.timestamp = message_summary.timestamp; self.timestamp = message_summary.timestamp;
self.state = message_summary.state.into(); self.state = message_summary.state.into();
} }