Skip to content

Commit abd3744

Browse files
message-row: Add initial support for replies chat
1 parent 07a75f5 commit abd3744

File tree

8 files changed

+28
-8
lines changed

8 files changed

+28
-8
lines changed

src/components/avatar.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ impl Avatar {
117117
closure!(|_: Self, item: Option<glib::Object>, title: String| {
118118
item.as_ref()
119119
.and_then(|i| i.downcast_ref::<Chat>())
120-
.filter(|chat| chat.is_own_chat())
120+
.filter(|chat| chat.is_own_chat() || chat.is_replies_chat())
121121
// Workaround for having a blue AdwAvatar for Saved Messages chat
122122
.map(|_| "-".to_string())
123123
.unwrap_or(title)
@@ -137,9 +137,15 @@ impl Avatar {
137137
>| {
138138
item.as_ref()
139139
.and_then(|i| i.downcast_ref::<Chat>())
140-
.filter(|chat| chat.is_own_chat())
140+
.filter(|chat| chat.is_own_chat() || chat.is_replies_chat())
141141
// Show bookmark icon for Saved Messages chat
142-
.map(|_| "user-bookmarks-symbolic")
142+
.map(|chat| {
143+
if chat.is_replies_chat() {
144+
"mail-reply-sender-symbolic"
145+
} else {
146+
"user-bookmarks-symbolic"
147+
}
148+
})
143149
}));
144150
icon_name_expression.bind(&*imp.avatar, "icon-name", Some(self));
145151

src/expressions.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ pub(crate) fn chat_display_name(chat_expression: &gtk::Expression) -> gtk::Expre
2222
let is_deleted = args[3].get::<bool>().unwrap();
2323
if chat.is_own_chat() {
2424
gettext("Saved Messages")
25+
} else if chat.is_replies_chat() {
26+
gettext("Replies")
2527
} else if is_deleted {
2628
gettext("Deleted Account")
2729
} else {

src/session/content/chat_action_bar.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,14 @@ impl ChatActionBar {
717717
imp.action_bar_stack.set_visible_child_name("entry");
718718
} else if is_blocked {
719719
imp.action_bar_stack.set_visible_child_name("unblock");
720+
} else if chat.is_replies_chat() {
721+
imp.action_bar_stack.set_visible_child_name("mute");
722+
723+
if self.is_chat_muted() {
724+
imp.mute_button.set_label(&gettext("Unmute"));
725+
} else {
726+
imp.mute_button.set_label(&gettext("Mute"));
727+
}
720728
} else {
721729
imp.action_bar_stack.set_visible_child_name("entry");
722730
}

src/session/content/message_row/bubble.rs

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

182182
let show_sender = if force_hide_sender {
183183
None
184-
} else if message.chat().is_own_chat() {
184+
} else if message.chat().is_own_chat() || message.chat().is_replies_chat() {
185185
if message.is_outgoing() {
186186
None
187187
} else {

src/session/content/message_row/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ impl MessageRow {
216216
if let Some(message) = message.downcast_ref::<Message>() {
217217
let show_avatar = if message.is_outgoing() {
218218
false
219-
} else if message.chat().is_own_chat() {
219+
} else if message.chat().is_own_chat() || message.chat().is_replies_chat() {
220220
message.forward_info().is_some()
221221
} else {
222222
match message.chat().type_() {
@@ -244,7 +244,7 @@ impl MessageRow {
244244
}
245245
};
246246

247-
if message.chat().is_own_chat() {
247+
if message.chat().is_own_chat() || message.chat().is_replies_chat() {
248248
match message.forward_info().unwrap().origin() {
249249
MessageForwardOrigin::User(user) => {
250250
avatar.set_custom_text(None);

src/session/sidebar/row.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,7 @@ fn sender_label(message: Message) -> Option<String> {
604604
_ => return None,
605605
}
606606

607-
if message.chat().is_own_chat() {
607+
if message.chat().is_own_chat() || message.chat().is_replies_chat() {
608608
if message.is_outgoing() {
609609
None
610610
} else {

src/tdlib/chat.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,10 @@ impl Chat {
412412
self.type_().user() == Some(&self.session().me())
413413
}
414414

415+
pub(crate) fn is_replies_chat(&self) -> bool {
416+
self.id() == 1271266957 || self.id() == 708513
417+
}
418+
415419
pub(crate) fn permissions(&self) -> BoxedChatPermissions {
416420
self.imp().permissions.borrow().to_owned().unwrap()
417421
}

src/tdlib/message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ impl Message {
278278
}
279279

280280
pub(crate) fn sender_display_name_expression(&self) -> gtk::Expression {
281-
if self.chat().is_own_chat() {
281+
if self.chat().is_own_chat() || self.chat().is_replies_chat() {
282282
self.forward_info()
283283
.map(MessageForwardInfo::origin)
284284
.map(|forward_origin| match forward_origin {

0 commit comments

Comments
 (0)