Skip to content

Commit ce30f16

Browse files
feat(message-row): Add initial support for replies chat
1 parent d9061a5 commit ce30f16

File tree

8 files changed

+24
-7
lines changed

8 files changed

+24
-7
lines changed

src/components/avatar.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,10 @@ impl Avatar {
196196
self.load_image(user.avatar(), user.session());
197197
}
198198
} else if let Some(chat) = item.downcast_ref::<Chat>() {
199-
if chat.is_own_chat() {
199+
if chat.is_replies_chat() {
200+
imp.avatar.set_icon_name(Some("mail-reply-sender-symbolic"));
201+
imp.avatar.set_show_initials(false);
202+
} else if chat.is_own_chat() {
200203
imp.avatar.set_icon_name(Some("user-bookmarks-symbolic"));
201204
imp.avatar.set_show_initials(false);
202205
} else {
@@ -214,7 +217,7 @@ impl Avatar {
214217
imp.avatar
215218
.set_text(Some(&strings::user_display_name(user, true)));
216219
} else if let Some(chat) = item.downcast_ref::<Chat>() {
217-
if chat.is_own_chat() {
220+
if chat.is_own_chat() || chat.is_replies_chat() {
218221
imp.avatar.set_text(Some("-"));
219222
} else {
220223
imp.avatar.set_text(Some(chat.title().as_ref()));

src/expressions.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ pub(crate) fn chat_display_name(chat_expression: &gtk::Expression) -> gtk::Expre
2727
let is_deleted = args[3].get::<bool>().unwrap();
2828
if chat.is_own_chat() {
2929
gettext("Saved Messages")
30+
} else if chat.is_replies_chat() {
31+
gettext("Replies")
3032
} else if is_deleted {
3133
gettext("Deleted Account")
3234
} else {

src/session/content/chat_action_bar.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,14 @@ impl ChatActionBar {
775775
imp.action_bar_stack.set_visible_child_name("entry");
776776
} else if is_blocked {
777777
imp.action_bar_stack.set_visible_child_name("unblock");
778+
} else if chat.is_replies_chat() {
779+
imp.action_bar_stack.set_visible_child_name("mute");
780+
781+
if self.is_chat_muted() {
782+
imp.mute_button.set_label(&gettext("Unmute"));
783+
} else {
784+
imp.mute_button.set_label(&gettext("Mute"));
785+
}
778786
} else {
779787
imp.action_bar_stack.set_visible_child_name("entry");
780788
}

src/session/content/message_row/bubble.rs

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

186186
let show_sender = if force_hide_sender {
187187
None
188-
} else if message.chat().is_own_chat() {
188+
} else if message.chat().is_own_chat() || message.chat().is_replies_chat() {
189189
if message.is_outgoing() {
190190
None
191191
} else {

src/session/content/message_row/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ impl MessageRow {
220220
if let Some(message) = message.downcast_ref::<Message>() {
221221
let show_avatar = if message.is_outgoing() {
222222
false
223-
} else if message.chat().is_own_chat() {
223+
} else if message.chat().is_own_chat() || message.chat().is_replies_chat() {
224224
message.forward_info().is_some()
225225
} else {
226226
match message.chat().type_() {
@@ -248,7 +248,7 @@ impl MessageRow {
248248
}
249249
};
250250

251-
if message.chat().is_own_chat() {
251+
if message.chat().is_own_chat() || message.chat().is_replies_chat() {
252252
match message.forward_info().unwrap().origin() {
253253
MessageForwardOrigin::User(user) => {
254254
avatar.set_custom_text(None);

src/session/sidebar/row.rs

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

587-
if message.chat().is_own_chat() {
587+
if message.chat().is_own_chat() || message.chat().is_replies_chat() {
588588
if message.is_outgoing() {
589589
None
590590
} else {

src/tdlib/chat.rs

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

487+
pub(crate) fn is_replies_chat(&self) -> bool {
488+
self.id() == 1271266957 || self.id() == 708513
489+
}
490+
487491
pub(crate) fn permissions(&self) -> BoxedChatPermissions {
488492
self.imp().permissions.borrow().to_owned().unwrap()
489493
}

src/tdlib/message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ impl Message {
322322
}
323323

324324
pub(crate) fn sender_display_name_expression(&self) -> gtk::Expression {
325-
if self.chat().is_own_chat() {
325+
if self.chat().is_own_chat() || self.chat().is_replies_chat() {
326326
self.forward_info()
327327
.map(MessageForwardInfo::origin)
328328
.map(|forward_origin| match forward_origin {

0 commit comments

Comments
 (0)