Skip to content

Commit a9edcd4

Browse files
committed
action_sheet: Implement resolve/unresolve in topic action sheet
Fixes: zulip#744
1 parent 6a2d8ac commit a9edcd4

14 files changed

+605
-10
lines changed

assets/l10n/app_en.arb

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,42 @@
8888
"@actionSheetOptionUnfollowTopic": {
8989
"description": "Label for unfollowing a topic on action sheet."
9090
},
91+
"actionSheetOptionResolveTopic": "Mark as resolved",
92+
"@actionSheetOptionResolveTopic": {
93+
"description": "Label for the 'Mark as resolved' button on the topic action sheet."
94+
},
95+
"actionSheetOptionUnresolveTopic": "Mark as unresolved",
96+
"@actionSheetOptionUnresolveTopic": {
97+
"description": "Label for the 'Mark as unresolved' button on the topic action sheet."
98+
},
99+
"resolveTopicInterruptedTitle": "Problem marking topic as resolved",
100+
"@resolveTopicInterruptedTitle": {
101+
"description": "Error title when trying to 'Mark as resolved' and the app decides not to continue."
102+
},
103+
"unresolveTopicInterruptedTitle": "Problem marking topic as unresolved",
104+
"@unresolveTopicInterruptedTitle": {
105+
"description": "Error title when trying to 'Mark as unresolved' and the app decides not to continue."
106+
},
107+
"topicAlreadyResolvedMessage": "This topic is already marked as resolved.",
108+
"@topicAlreadyResolvedMessage": {
109+
"description": "Error message when trying to 'Mark as resolved' a topic that was already marked by someone else."
110+
},
111+
"topicAlreadyUnresolvedMessage": "This topic is already marked as unresolved.",
112+
"@topicAlreadyUnresolvedMessage": {
113+
"description": "Error message when trying to 'Mark as unresolved' a topic that was already marked by someone else."
114+
},
115+
"topicRenamedMessage": "This topic has been renamed.",
116+
"@topicRenamedMessage": {
117+
"description": "Error message when trying to 'Mark as resolved' or 'Mark as unresolved' a topic that was renamed by someone else."
118+
},
119+
"errorResolveTopicFailedTitle": "Failed to mark topic as resolved",
120+
"@errorResolveTopicFailedTitle": {
121+
"description": "Error title when marking a topic as resolved failed."
122+
},
123+
"errorUnresolveTopicFailedTitle": "Failed to mark topic as unresolved",
124+
"@errorUnresolveTopicFailedTitle": {
125+
"description": "Error title when marking a topic as unresolved failed."
126+
},
91127
"actionSheetOptionCopyMessageText": "Copy message text",
92128
"@actionSheetOptionCopyMessageText": {
93129
"description": "Label for copy message text button on action sheet."

lib/api/model/model.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,12 @@ extension type const TopicName(String _value) {
695695
/// The key to use for "same topic as" comparisons.
696696
String canonicalize() => apiName.toLowerCase();
697697

698+
/// Whether the topic starts with [resolvedTopicPrefix].
699+
bool get isResolved => _value.startsWith(resolvedTopicPrefix);
700+
701+
/// This [TopicName] plus the [resolvedTopicPrefix] prefix.
702+
TopicName resolve() => TopicName(resolvedTopicPrefix + _value);
703+
698704
/// A [TopicName] with [resolvedTopicPrefixRegexp] stripped if present.
699705
TopicName unresolve() =>
700706
TopicName(_value.replaceFirst(resolvedTopicPrefixRegexp, ''));

lib/generated/l10n/zulip_localizations.dart

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,60 @@ abstract class ZulipLocalizations {
237237
/// **'Unfollow topic'**
238238
String get actionSheetOptionUnfollowTopic;
239239

240+
/// Label for the 'Mark as resolved' button on the topic action sheet.
241+
///
242+
/// In en, this message translates to:
243+
/// **'Mark as resolved'**
244+
String get actionSheetOptionResolveTopic;
245+
246+
/// Label for the 'Mark as unresolved' button on the topic action sheet.
247+
///
248+
/// In en, this message translates to:
249+
/// **'Mark as unresolved'**
250+
String get actionSheetOptionUnresolveTopic;
251+
252+
/// Error title when trying to 'Mark as resolved' and the app decides not to continue.
253+
///
254+
/// In en, this message translates to:
255+
/// **'Problem marking topic as resolved'**
256+
String get resolveTopicInterruptedTitle;
257+
258+
/// Error title when trying to 'Mark as unresolved' and the app decides not to continue.
259+
///
260+
/// In en, this message translates to:
261+
/// **'Problem marking topic as unresolved'**
262+
String get unresolveTopicInterruptedTitle;
263+
264+
/// Error message when trying to 'Mark as resolved' a topic that was already marked by someone else.
265+
///
266+
/// In en, this message translates to:
267+
/// **'This topic is already marked as resolved.'**
268+
String get topicAlreadyResolvedMessage;
269+
270+
/// Error message when trying to 'Mark as unresolved' a topic that was already marked by someone else.
271+
///
272+
/// In en, this message translates to:
273+
/// **'This topic is already marked as unresolved.'**
274+
String get topicAlreadyUnresolvedMessage;
275+
276+
/// Error message when trying to 'Mark as resolved' or 'Mark as unresolved' a topic that was renamed by someone else.
277+
///
278+
/// In en, this message translates to:
279+
/// **'This topic has been renamed.'**
280+
String get topicRenamedMessage;
281+
282+
/// Error title when marking a topic as resolved failed.
283+
///
284+
/// In en, this message translates to:
285+
/// **'Failed to mark topic as resolved'**
286+
String get errorResolveTopicFailedTitle;
287+
288+
/// Error title when marking a topic as unresolved failed.
289+
///
290+
/// In en, this message translates to:
291+
/// **'Failed to mark topic as unresolved'**
292+
String get errorUnresolveTopicFailedTitle;
293+
240294
/// Label for copy message text button on action sheet.
241295
///
242296
/// In en, this message translates to:

lib/generated/l10n/zulip_localizations_ar.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,33 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
7676
@override
7777
String get actionSheetOptionUnfollowTopic => 'Unfollow topic';
7878

79+
@override
80+
String get actionSheetOptionResolveTopic => 'Mark as resolved';
81+
82+
@override
83+
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
84+
85+
@override
86+
String get resolveTopicInterruptedTitle => 'Problem marking topic as resolved';
87+
88+
@override
89+
String get unresolveTopicInterruptedTitle => 'Problem marking topic as unresolved';
90+
91+
@override
92+
String get topicAlreadyResolvedMessage => 'This topic is already marked as resolved.';
93+
94+
@override
95+
String get topicAlreadyUnresolvedMessage => 'This topic is already marked as unresolved.';
96+
97+
@override
98+
String get topicRenamedMessage => 'This topic has been renamed.';
99+
100+
@override
101+
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
102+
103+
@override
104+
String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved';
105+
79106
@override
80107
String get actionSheetOptionCopyMessageText => 'Copy message text';
81108

lib/generated/l10n/zulip_localizations_en.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,33 @@ class ZulipLocalizationsEn extends ZulipLocalizations {
7676
@override
7777
String get actionSheetOptionUnfollowTopic => 'Unfollow topic';
7878

79+
@override
80+
String get actionSheetOptionResolveTopic => 'Mark as resolved';
81+
82+
@override
83+
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
84+
85+
@override
86+
String get resolveTopicInterruptedTitle => 'Problem marking topic as resolved';
87+
88+
@override
89+
String get unresolveTopicInterruptedTitle => 'Problem marking topic as unresolved';
90+
91+
@override
92+
String get topicAlreadyResolvedMessage => 'This topic is already marked as resolved.';
93+
94+
@override
95+
String get topicAlreadyUnresolvedMessage => 'This topic is already marked as unresolved.';
96+
97+
@override
98+
String get topicRenamedMessage => 'This topic has been renamed.';
99+
100+
@override
101+
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
102+
103+
@override
104+
String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved';
105+
79106
@override
80107
String get actionSheetOptionCopyMessageText => 'Copy message text';
81108

lib/generated/l10n/zulip_localizations_ja.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,33 @@ class ZulipLocalizationsJa extends ZulipLocalizations {
7676
@override
7777
String get actionSheetOptionUnfollowTopic => 'Unfollow topic';
7878

79+
@override
80+
String get actionSheetOptionResolveTopic => 'Mark as resolved';
81+
82+
@override
83+
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
84+
85+
@override
86+
String get resolveTopicInterruptedTitle => 'Problem marking topic as resolved';
87+
88+
@override
89+
String get unresolveTopicInterruptedTitle => 'Problem marking topic as unresolved';
90+
91+
@override
92+
String get topicAlreadyResolvedMessage => 'This topic is already marked as resolved.';
93+
94+
@override
95+
String get topicAlreadyUnresolvedMessage => 'This topic is already marked as unresolved.';
96+
97+
@override
98+
String get topicRenamedMessage => 'This topic has been renamed.';
99+
100+
@override
101+
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
102+
103+
@override
104+
String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved';
105+
79106
@override
80107
String get actionSheetOptionCopyMessageText => 'Copy message text';
81108

lib/generated/l10n/zulip_localizations_nb.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,33 @@ class ZulipLocalizationsNb extends ZulipLocalizations {
7676
@override
7777
String get actionSheetOptionUnfollowTopic => 'Unfollow topic';
7878

79+
@override
80+
String get actionSheetOptionResolveTopic => 'Mark as resolved';
81+
82+
@override
83+
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
84+
85+
@override
86+
String get resolveTopicInterruptedTitle => 'Problem marking topic as resolved';
87+
88+
@override
89+
String get unresolveTopicInterruptedTitle => 'Problem marking topic as unresolved';
90+
91+
@override
92+
String get topicAlreadyResolvedMessage => 'This topic is already marked as resolved.';
93+
94+
@override
95+
String get topicAlreadyUnresolvedMessage => 'This topic is already marked as unresolved.';
96+
97+
@override
98+
String get topicRenamedMessage => 'This topic has been renamed.';
99+
100+
@override
101+
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
102+
103+
@override
104+
String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved';
105+
79106
@override
80107
String get actionSheetOptionCopyMessageText => 'Copy message text';
81108

lib/generated/l10n/zulip_localizations_pl.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,33 @@ class ZulipLocalizationsPl extends ZulipLocalizations {
7676
@override
7777
String get actionSheetOptionUnfollowTopic => 'Nie śledź wątku';
7878

79+
@override
80+
String get actionSheetOptionResolveTopic => 'Mark as resolved';
81+
82+
@override
83+
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
84+
85+
@override
86+
String get resolveTopicInterruptedTitle => 'Problem marking topic as resolved';
87+
88+
@override
89+
String get unresolveTopicInterruptedTitle => 'Problem marking topic as unresolved';
90+
91+
@override
92+
String get topicAlreadyResolvedMessage => 'This topic is already marked as resolved.';
93+
94+
@override
95+
String get topicAlreadyUnresolvedMessage => 'This topic is already marked as unresolved.';
96+
97+
@override
98+
String get topicRenamedMessage => 'This topic has been renamed.';
99+
100+
@override
101+
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
102+
103+
@override
104+
String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved';
105+
79106
@override
80107
String get actionSheetOptionCopyMessageText => 'Skopiuj tekst wiadomości';
81108

lib/generated/l10n/zulip_localizations_ru.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,33 @@ class ZulipLocalizationsRu extends ZulipLocalizations {
7676
@override
7777
String get actionSheetOptionUnfollowTopic => 'Не отслеживать тему';
7878

79+
@override
80+
String get actionSheetOptionResolveTopic => 'Mark as resolved';
81+
82+
@override
83+
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
84+
85+
@override
86+
String get resolveTopicInterruptedTitle => 'Problem marking topic as resolved';
87+
88+
@override
89+
String get unresolveTopicInterruptedTitle => 'Problem marking topic as unresolved';
90+
91+
@override
92+
String get topicAlreadyResolvedMessage => 'This topic is already marked as resolved.';
93+
94+
@override
95+
String get topicAlreadyUnresolvedMessage => 'This topic is already marked as unresolved.';
96+
97+
@override
98+
String get topicRenamedMessage => 'This topic has been renamed.';
99+
100+
@override
101+
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
102+
103+
@override
104+
String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved';
105+
79106
@override
80107
String get actionSheetOptionCopyMessageText => 'Скопировать текст сообщения';
81108

lib/generated/l10n/zulip_localizations_sk.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,33 @@ class ZulipLocalizationsSk extends ZulipLocalizations {
7676
@override
7777
String get actionSheetOptionUnfollowTopic => 'Prestať sledovať tému';
7878

79+
@override
80+
String get actionSheetOptionResolveTopic => 'Mark as resolved';
81+
82+
@override
83+
String get actionSheetOptionUnresolveTopic => 'Mark as unresolved';
84+
85+
@override
86+
String get resolveTopicInterruptedTitle => 'Problem marking topic as resolved';
87+
88+
@override
89+
String get unresolveTopicInterruptedTitle => 'Problem marking topic as unresolved';
90+
91+
@override
92+
String get topicAlreadyResolvedMessage => 'This topic is already marked as resolved.';
93+
94+
@override
95+
String get topicAlreadyUnresolvedMessage => 'This topic is already marked as unresolved.';
96+
97+
@override
98+
String get topicRenamedMessage => 'This topic has been renamed.';
99+
100+
@override
101+
String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved';
102+
103+
@override
104+
String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved';
105+
79106
@override
80107
String get actionSheetOptionCopyMessageText => 'Skopírovať text správy';
81108

0 commit comments

Comments
 (0)