Skip to content

Commit ea5f3da

Browse files
chrisbobbesm-sayedi
andcommitted
msglist: Hide content of muted messages, with a "Reveal message" button
Figma design: https://www.figma.com/design/1JTNtYo9memgW7vV6d0ygq/Zulip-Mobile?node-id=6089-28385&t=28DdYiTs6fXWR9ua-0 Co-authored-by: Sayed Mahmood Sayedi <smahmood.sayedi@gmail.com>
1 parent d2d9ddf commit ea5f3da

16 files changed

+267
-49
lines changed

assets/l10n/app_en.arb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1047,7 +1047,7 @@
10471047
"@noEarlierMessages": {
10481048
"description": "Text to show at the start of a message list if there are no earlier messages."
10491049
},
1050-
"revealButtonLabel": "Reveal message for muted sender",
1050+
"revealButtonLabel": "Reveal message",
10511051
"@revealButtonLabel": {
10521052
"description": "Label for the button revealing hidden message from a muted sender in message list."
10531053
},

assets/l10n/app_pl.arb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,10 +1085,6 @@
10851085
"@mutedSender": {
10861086
"description": "Name for a muted user to display in message list."
10871087
},
1088-
"revealButtonLabel": "Odsłoń wiadomość od wyciszonego użytkownika",
1089-
"@revealButtonLabel": {
1090-
"description": "Label for the button revealing hidden message from a muted sender in message list."
1091-
},
10921088
"mutedUser": "Wyciszony użytkownik",
10931089
"@mutedUser": {
10941090
"description": "Name for a muted user to display all over the app."

assets/l10n/app_ru.arb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,10 +1077,6 @@
10771077
"@mutedSender": {
10781078
"description": "Name for a muted user to display in message list."
10791079
},
1080-
"revealButtonLabel": "Показать сообщение отключенного отправителя",
1081-
"@revealButtonLabel": {
1082-
"description": "Label for the button revealing hidden message from a muted sender in message list."
1083-
},
10841080
"mutedUser": "Отключенный пользователь",
10851081
"@mutedUser": {
10861082
"description": "Name for a muted user to display all over the app."

lib/generated/l10n/zulip_localizations.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1566,7 +1566,7 @@ abstract class ZulipLocalizations {
15661566
/// Label for the button revealing hidden message from a muted sender in message list.
15671567
///
15681568
/// In en, this message translates to:
1569-
/// **'Reveal message for muted sender'**
1569+
/// **'Reveal message'**
15701570
String get revealButtonLabel;
15711571

15721572
/// Text to display in place of a muted user's name.

lib/generated/l10n/zulip_localizations_ar.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
855855
String get noEarlierMessages => 'No earlier messages';
856856

857857
@override
858-
String get revealButtonLabel => 'Reveal message for muted sender';
858+
String get revealButtonLabel => 'Reveal message';
859859

860860
@override
861861
String get mutedUser => 'Muted user';

lib/generated/l10n/zulip_localizations_en.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
855855
String get noEarlierMessages => 'No earlier messages';
856856

857857
@override
858-
String get revealButtonLabel => 'Reveal message for muted sender';
858+
String get revealButtonLabel => 'Reveal message';
859859

860860
@override
861861
String get mutedUser => 'Muted user';

lib/generated/l10n/zulip_localizations_ja.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
855855
String get noEarlierMessages => 'No earlier messages';
856856

857857
@override
858-
String get revealButtonLabel => 'Reveal message for muted sender';
858+
String get revealButtonLabel => 'Reveal message';
859859

860860
@override
861861
String get mutedUser => 'Muted user';

lib/generated/l10n/zulip_localizations_nb.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
855855
String get noEarlierMessages => 'No earlier messages';
856856

857857
@override
858-
String get revealButtonLabel => 'Reveal message for muted sender';
858+
String get revealButtonLabel => 'Reveal message';
859859

860860
@override
861861
String get mutedUser => 'Muted user';

lib/generated/l10n/zulip_localizations_pl.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,7 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
868868
String get noEarlierMessages => 'Brak historii';
869869

870870
@override
871-
String get revealButtonLabel => 'Odsłoń wiadomość od wyciszonego użytkownika';
871+
String get revealButtonLabel => 'Reveal message';
872872

873873
@override
874874
String get mutedUser => 'Wyciszony użytkownik';

lib/generated/l10n/zulip_localizations_ru.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
872872
String get noEarlierMessages => 'Предшествующих сообщений нет';
873873

874874
@override
875-
String get revealButtonLabel => 'Показать сообщение отключенного отправителя';
875+
String get revealButtonLabel => 'Reveal message';
876876

877877
@override
878878
String get mutedUser => 'Отключенный пользователь';

lib/generated/l10n/zulip_localizations_sk.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
857857
String get noEarlierMessages => 'No earlier messages';
858858

859859
@override
860-
String get revealButtonLabel => 'Reveal message for muted sender';
860+
String get revealButtonLabel => 'Reveal message';
861861

862862
@override
863863
String get mutedUser => 'Muted user';

lib/generated/l10n/zulip_localizations_zh.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ class ZulipLocalizationsZh extends ZulipLocalizations {
855855
String get noEarlierMessages => 'No earlier messages';
856856

857857
@override
858-
String get revealButtonLabel => 'Reveal message for muted sender';
858+
String get revealButtonLabel => 'Reveal message';
859859

860860
@override
861861
String get mutedUser => 'Muted user';

lib/widgets/action_sheet.dart

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,8 @@ void showMessageActionSheet({required BuildContext context, required Message mes
589589
final markAsUnreadSupported = store.zulipFeatureLevel >= 155; // TODO(server-6)
590590
final showMarkAsUnreadButton = markAsUnreadSupported && isMessageRead;
591591

592+
final isSenderMuted = store.isUserMuted(message.senderId);
593+
592594
final optionButtons = [
593595
if (popularEmojiLoaded)
594596
ReactionButtons(message: message, pageContext: pageContext),
@@ -597,6 +599,9 @@ void showMessageActionSheet({required BuildContext context, required Message mes
597599
QuoteAndReplyButton(message: message, pageContext: pageContext),
598600
if (showMarkAsUnreadButton)
599601
MarkAsUnreadButton(message: message, pageContext: pageContext),
602+
if (isSenderMuted)
603+
// The message must have been revealed in order to open this action sheet.
604+
UnrevealMutedMessageButton(message: message, pageContext: pageContext),
600605
CopyMessageTextButton(message: message, pageContext: pageContext),
601606
CopyMessageLinkButton(message: message, pageContext: pageContext),
602607
ShareButton(message: message, pageContext: pageContext),
@@ -904,6 +909,30 @@ class MarkAsUnreadButton extends MessageActionSheetMenuItemButton {
904909
}
905910
}
906911

912+
class UnrevealMutedMessageButton extends MessageActionSheetMenuItemButton {
913+
UnrevealMutedMessageButton({
914+
super.key,
915+
required super.message,
916+
required super.pageContext,
917+
});
918+
919+
@override
920+
IconData get icon => ZulipIcons.eye_off;
921+
922+
@override
923+
String label(ZulipLocalizations zulipLocalizations) {
924+
return zulipLocalizations.actionSheetOptionHideMutedMessage;
925+
}
926+
927+
@override
928+
void onPressed() {
929+
// The message should have been revealed in order to reach this action sheet.
930+
assert(MessageListPage.revealedMutedMessagesOf(pageContext)
931+
.isMutedMessageRevealed(message.id));
932+
findMessageListPage().unrevealMutedMessage(message.id);
933+
}
934+
}
935+
907936
class CopyMessageTextButton extends MessageActionSheetMenuItemButton {
908937
CopyMessageTextButton({super.key, required super.message, required super.pageContext});
909938

0 commit comments

Comments
 (0)