Skip to content

Commit ef13cb4

Browse files
message-row: Add initial support for replies chat
1 parent 52c827a commit ef13cb4

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
@@ -760,6 +760,14 @@ impl ChatActionBar {
760760
imp.action_bar_stack.set_visible_child_name("entry");
761761
} else if is_blocked {
762762
imp.action_bar_stack.set_visible_child_name("unblock");
763+
} else if chat.is_replies_chat() {
764+
imp.action_bar_stack.set_visible_child_name("mute");
765+
766+
if self.is_chat_muted() {
767+
imp.mute_button.set_label(&gettext("Unmute"));
768+
} else {
769+
imp.mute_button.set_label(&gettext("Mute"));
770+
}
763771
} else {
764772
imp.action_bar_stack.set_visible_child_name("entry");
765773
}

src/session/content/message_row/bubble.rs

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

177177
let show_sender = if force_hide_sender {
178178
None
179-
} else if message.chat().is_own_chat() {
179+
} else if message.chat().is_own_chat() || message.chat().is_replies_chat() {
180180
if message.is_outgoing() {
181181
None
182182
} else {

src/session/content/message_row/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ impl MessageRow {
213213
if let Some(message) = message.downcast_ref::<Message>() {
214214
let show_avatar = if message.is_outgoing() {
215215
false
216-
} else if message.chat().is_own_chat() {
216+
} else if message.chat().is_own_chat() || message.chat().is_replies_chat() {
217217
message.forward_info().is_some()
218218
} else {
219219
match message.chat().type_() {
@@ -241,7 +241,7 @@ impl MessageRow {
241241
}
242242
};
243243

244-
if message.chat().is_own_chat() {
244+
if message.chat().is_own_chat() || message.chat().is_replies_chat() {
245245
match message.forward_info().unwrap().origin() {
246246
MessageForwardOrigin::User(user) => {
247247
avatar.set_custom_text(None);

src/session/sidebar/row.rs

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

574-
if message.chat().is_own_chat() {
574+
if message.chat().is_own_chat() || message.chat().is_replies_chat() {
575575
if message.is_outgoing() {
576576
None
577577
} else {

src/tdlib/chat.rs

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

484+
pub(crate) fn is_replies_chat(&self) -> bool {
485+
self.id() == 1271266957 || self.id() == 708513
486+
}
487+
484488
pub(crate) fn permissions(&self) -> BoxedChatPermissions {
485489
self.imp().permissions.borrow().to_owned().unwrap()
486490
}

src/tdlib/message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ impl Message {
313313
}
314314

315315
pub(crate) fn sender_display_name_expression(&self) -> gtk::Expression {
316-
if self.chat().is_own_chat() {
316+
if self.chat().is_own_chat() || self.chat().is_replies_chat() {
317317
self.forward_info()
318318
.map(MessageForwardInfo::origin)
319319
.map(|forward_origin| match forward_origin {

0 commit comments

Comments
 (0)