Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions assets/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -932,6 +932,18 @@
"@errorMarkAsUnreadFailedTitle": {
"description": "Error title when mark as unread action failed."
},
"markAllAsReadConfirmationDialogTitle": "Mark messages as read?",
"@markAllAsReadConfirmationDialogTitle": {
"description": "Title of the confirmation dialog for marking all messages as read"
},
"markAllAsReadConfirmationDialogMessage": "To preserve your reading state, this view does not mark messages as read.",
"@markAllAsReadConfirmationDialogMessage": {
"description": "Message that warns the user they may unintentionally mark messages as read"
},
"markAllAsReadConfirmationDialogAction": "Mark as read",
"@markAllAsReadConfirmationDialogAction": {
"description": "Action message to confirm marking all messages as read."
},
"today": "Today",
"@today": {
"description": "Term to use to reference the current day."
Expand Down
18 changes: 18 additions & 0 deletions lib/generated/l10n/zulip_localizations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1387,6 +1387,24 @@ abstract class ZulipLocalizations {
/// **'Mark as unread failed'**
String get errorMarkAsUnreadFailedTitle;

/// Title of the confirmation dialog for marking all messages as read
///
/// In en, this message translates to:
/// **'Mark messages as read?'**
String get markAllAsReadConfirmationDialogTitle;

/// Message that warns the user they may unintentionally mark messages as read
///
/// In en, this message translates to:
/// **'To preserve your reading state, this view does not mark messages as read.'**
String get markAllAsReadConfirmationDialogMessage;

/// Action message to confirm marking all messages as read.
///
/// In en, this message translates to:
/// **'Mark as read'**
String get markAllAsReadConfirmationDialogAction;

/// Term to use to reference the current day.
///
/// In en, this message translates to:
Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_ar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_de.dart
Original file line number Diff line number Diff line change
Expand Up @@ -793,6 +793,16 @@ class ZulipLocalizationsDe extends ZulipLocalizations {
String get errorMarkAsUnreadFailedTitle =>
'Als ungelesen markieren fehlgeschlagen';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Heute';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_el.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsEl extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_es.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsEs extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_fr.dart
Original file line number Diff line number Diff line change
Expand Up @@ -790,6 +790,16 @@ class ZulipLocalizationsFr extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_he.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsHe extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_hu.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsHu extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_it.dart
Original file line number Diff line number Diff line change
Expand Up @@ -785,6 +785,16 @@ class ZulipLocalizationsIt extends ZulipLocalizations {
String get errorMarkAsUnreadFailedTitle =>
'Contrassegno come non letti non riuscito';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Oggi';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_ja.dart
Original file line number Diff line number Diff line change
Expand Up @@ -752,6 +752,16 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => '未読にできませんでした';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => '今日';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_nb.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_pl.dart
Original file line number Diff line number Diff line change
Expand Up @@ -790,6 +790,16 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
String get errorMarkAsUnreadFailedTitle =>
'Oznaczanie jako nieprzeczytane bez powodzenia';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Dzisiaj';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_ru.dart
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,16 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
String get errorMarkAsUnreadFailedTitle =>
'Не удалось снять отметку прочтения';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Сегодня';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_sk.dart
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,16 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
String get errorMarkAsUnreadFailedTitle =>
'Zlyhalo označenie správ za prečítané';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Dnes';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_sl.dart
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,16 @@ class ZulipLocalizationsSl extends ZulipLocalizations {
String get errorMarkAsUnreadFailedTitle =>
'Označevanje kot neprebrano ni uspelo';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Danes';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_uk.dart
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,16 @@ class ZulipLocalizationsUk extends ZulipLocalizations {
String get errorMarkAsUnreadFailedTitle =>
'Не вдалося позначити як непрочитане';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Сьогодні';

Expand Down
10 changes: 10 additions & 0 deletions lib/generated/l10n/zulip_localizations_zh.dart
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,16 @@ class ZulipLocalizationsZh extends ZulipLocalizations {
@override
String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed';

@override
String get markAllAsReadConfirmationDialogTitle => 'Mark messages as read?';

@override
String get markAllAsReadConfirmationDialogMessage =>
'To preserve your reading state, this view does not mark messages as read.';

@override
String get markAllAsReadConfirmationDialogAction => 'Mark as read';

@override
String get today => 'Today';

Expand Down
12 changes: 12 additions & 0 deletions lib/widgets/actions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@ abstract final class ZulipAction {
static Future<void> markNarrowAsRead(BuildContext context, Narrow narrow) async {
final zulipLocalizations = ZulipLocalizations.of(context);

if (narrow is CombinedFeedNarrow || narrow is ChannelNarrow ||
narrow is MentionsNarrow || narrow is MentionsNarrow || narrow is StarredMessagesNarrow) {
final didConfirm = showSuggestedActionDialog(context: context,
title: zulipLocalizations.markAllAsReadConfirmationDialogTitle,
message: zulipLocalizations.markAllAsReadConfirmationDialogMessage,
actionButtonText: zulipLocalizations.markAllAsReadConfirmationDialogAction,
);

if (await didConfirm.result != true) return;
if (!context.mounted) return;
}

final didPass = await updateMessageFlagsStartingFromAnchor(
context: context,
// Include `is:unread` in the narrow. That has a database index, so
Expand Down
Loading
Loading