Skip to content

Commit 91b84d0

Browse files
feat(message-row): Add initial support for replies chat
1 parent a2a8790 commit 91b84d0

File tree

8 files changed

+23
-6
lines changed

8 files changed

+23
-6
lines changed

src/expressions.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ pub(crate) fn chat_display_name(chat_expression: &gtk::Expression) -> gtk::Expre
1818
let is_deleted = args[3].get::<bool>().unwrap();
1919
if chat.is_own_chat() {
2020
gettext("Saved Messages")
21+
} else if chat.is_replies_chat() {
22+
gettext("Replies")
2123
} else if is_deleted {
2224
gettext("Deleted Account")
2325
} else {

src/model/chat.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,10 @@ impl Chat {
388388
self.chat_type().user() == Some(self.session_().me_())
389389
}
390390

391+
pub(crate) fn is_replies_chat(&self) -> bool {
392+
self.id() == 1271266957 || self.id() == 708513
393+
}
394+
391395
fn set_permissions(&self, permissions: model::BoxedChatPermissions) {
392396
if self.permissions() == permissions {
393397
return;

src/model/message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ impl Message {
215215
}
216216

217217
pub(crate) fn sender_display_name_expression(&self) -> gtk::Expression {
218-
if self.chat_().is_own_chat() {
218+
if self.chat_().is_own_chat() || self.chat_().is_replies_chat() {
219219
self.forward_info()
220220
.map(|forward_info| forward_info.origin())
221221
.map(|forward_origin| match forward_origin {

src/ui/components/avatar.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,9 @@ impl Avatar {
194194
if chat.is_own_chat() {
195195
imp.avatar.set_icon_name(Some("user-bookmarks-symbolic"));
196196
imp.avatar.set_show_initials(false);
197+
} else if chat.is_replies_chat() {
198+
imp.avatar.set_icon_name(Some("mail-reply-sender-symbolic"));
199+
imp.avatar.set_show_initials(false);
197200
} else {
198201
self.load_image(chat.avatar(), chat.session_());
199202
}
@@ -209,7 +212,7 @@ impl Avatar {
209212
imp.avatar
210213
.set_text(Some(&strings::user_display_name(user, true)));
211214
} else if let Some(chat) = item.downcast_ref::<model::Chat>() {
212-
if chat.is_own_chat() {
215+
if chat.is_own_chat() || chat.is_replies_chat() {
213216
imp.avatar.set_text(Some("-"));
214217
} else {
215218
imp.avatar.set_text(Some(chat.title().as_ref()));

src/ui/session/content/chat_action_bar.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,14 @@ impl ChatActionBar {
767767
imp.action_bar_stack.set_visible_child_name("entry");
768768
} else if is_blocked {
769769
imp.action_bar_stack.set_visible_child_name("unblock");
770+
} else if chat.is_replies_chat() {
771+
imp.action_bar_stack.set_visible_child_name("mute");
772+
773+
if self.is_chat_muted() {
774+
imp.mute_button.set_label(&gettext("Unmute"));
775+
} else {
776+
imp.mute_button.set_label(&gettext("Mute"));
777+
}
770778
} else {
771779
imp.action_bar_stack.set_visible_child_name("entry");
772780
}

src/ui/session/content/message_row/bubble.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ impl MessageBubble {
147147

148148
let show_sender = if force_hide_sender {
149149
None
150-
} else if message.chat_().is_own_chat() {
150+
} else if message.chat_().is_own_chat() || message.chat_().is_replies_chat() {
151151
if message.is_outgoing() {
152152
None
153153
} else {

src/ui/session/content/message_row/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ impl Row {
208208
if let Some(message) = message.downcast_ref::<model::Message>() {
209209
let show_avatar = if message.is_outgoing() {
210210
false
211-
} else if message.chat_().is_own_chat() {
211+
} else if message.chat_().is_own_chat() || message.chat_().is_replies_chat() {
212212
message.forward_info().is_some()
213213
} else {
214214
match message.chat_().chat_type() {
@@ -236,7 +236,7 @@ impl Row {
236236
}
237237
};
238238

239-
if message.chat_().is_own_chat() {
239+
if message.chat_().is_own_chat() || message.chat_().is_replies_chat() {
240240
match message.forward_info().unwrap().origin() {
241241
model::MessageForwardOrigin::User(user) => {
242242
avatar.set_custom_text(None);

src/ui/session/sidebar/row.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ fn sender_label(message: model::Message) -> Option<String> {
567567
_ => return None,
568568
}
569569

570-
if message.chat_().is_own_chat() {
570+
if message.chat_().is_own_chat() || message.chat_().is_replies_chat() {
571571
if message.is_outgoing() {
572572
None
573573
} else {

0 commit comments

Comments
 (0)