Skip to content

Commit 80017ad

Browse files
chrisbobbePIG208
authored andcommitted
action_sheet: Implement resolve/unresolve in topic action sheet
Fixes: # 744
1 parent e819de4 commit 80017ad

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
@@ -92,6 +92,42 @@
9292
"@actionSheetOptionUnfollowTopic": {
9393
"description": "Label for unfollowing a topic on action sheet."
9494
},
95+
"actionSheetOptionResolveTopic": "Mark as resolved",
96+
"@actionSheetOptionResolveTopic": {
97+
"description": "Label for the 'Mark as resolved' button on the topic action sheet."
98+
},
99+
"actionSheetOptionUnresolveTopic": "Mark as unresolved",
100+
"@actionSheetOptionUnresolveTopic": {
101+
"description": "Label for the 'Mark as unresolved' button on the topic action sheet."
102+
},
103+
"resolveTopicInterruptedTitle": "Problem marking topic as resolved",
104+
"@resolveTopicInterruptedTitle": {
105+
"description": "Error title when trying to 'Mark as resolved' and the app decides not to continue."
106+
},
107+
"unresolveTopicInterruptedTitle": "Problem marking topic as unresolved",
108+
"@unresolveTopicInterruptedTitle": {
109+
"description": "Error title when trying to 'Mark as unresolved' and the app decides not to continue."
110+
},
111+
"topicAlreadyResolvedMessage": "This topic is already marked as resolved.",
112+
"@topicAlreadyResolvedMessage": {
113+
"description": "Error message when trying to 'Mark as resolved' a topic that was already marked by someone else."
114+
},
115+
"topicAlreadyUnresolvedMessage": "This topic is already marked as unresolved.",
116+
"@topicAlreadyUnresolvedMessage": {
117+
"description": "Error message when trying to 'Mark as unresolved' a topic that was already marked by someone else."
118+
},
119+
"topicRenamedMessage": "This topic has been renamed.",
120+
"@topicRenamedMessage": {
121+
"description": "Error message when trying to 'Mark as resolved' or 'Mark as unresolved' a topic that was renamed by someone else."
122+
},
123+
"errorResolveTopicFailedTitle": "Failed to mark topic as resolved",
124+
"@errorResolveTopicFailedTitle": {
125+
"description": "Error title when marking a topic as resolved failed."
126+
},
127+
"errorUnresolveTopicFailedTitle": "Failed to mark topic as unresolved",
128+
"@errorUnresolveTopicFailedTitle": {
129+
"description": "Error title when marking a topic as unresolved failed."
130+
},
95131
"actionSheetOptionCopyMessageText": "Copy message text",
96132
"@actionSheetOptionCopyMessageText": {
97133
"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
@@ -243,6 +243,60 @@ abstract class ZulipLocalizations {
243243
/// **'Unfollow topic'**
244244
String get actionSheetOptionUnfollowTopic;
245245

246+
/// Label for the 'Mark as resolved' button on the topic action sheet.
247+
///
248+
/// In en, this message translates to:
249+
/// **'Mark as resolved'**
250+
String get actionSheetOptionResolveTopic;
251+
252+
/// Label for the 'Mark as unresolved' button on the topic action sheet.
253+
///
254+
/// In en, this message translates to:
255+
/// **'Mark as unresolved'**
256+
String get actionSheetOptionUnresolveTopic;
257+
258+
/// Error title when trying to 'Mark as resolved' and the app decides not to continue.
259+
///
260+
/// In en, this message translates to:
261+
/// **'Problem marking topic as resolved'**
262+
String get resolveTopicInterruptedTitle;
263+
264+
/// Error title when trying to 'Mark as unresolved' and the app decides not to continue.
265+
///
266+
/// In en, this message translates to:
267+
/// **'Problem marking topic as unresolved'**
268+
String get unresolveTopicInterruptedTitle;
269+
270+
/// Error message when trying to 'Mark as resolved' a topic that was already marked by someone else.
271+
///
272+
/// In en, this message translates to:
273+
/// **'This topic is already marked as resolved.'**
274+
String get topicAlreadyResolvedMessage;
275+
276+
/// Error message when trying to 'Mark as unresolved' a topic that was already marked by someone else.
277+
///
278+
/// In en, this message translates to:
279+
/// **'This topic is already marked as unresolved.'**
280+
String get topicAlreadyUnresolvedMessage;
281+
282+
/// Error message when trying to 'Mark as resolved' or 'Mark as unresolved' a topic that was renamed by someone else.
283+
///
284+
/// In en, this message translates to:
285+
/// **'This topic has been renamed.'**
286+
String get topicRenamedMessage;
287+
288+
/// Error title when marking a topic as resolved failed.
289+
///
290+
/// In en, this message translates to:
291+
/// **'Failed to mark topic as resolved'**
292+
String get errorResolveTopicFailedTitle;
293+
294+
/// Error title when marking a topic as unresolved failed.
295+
///
296+
/// In en, this message translates to:
297+
/// **'Failed to mark topic as unresolved'**
298+
String get errorUnresolveTopicFailedTitle;
299+
246300
/// Label for copy message text button on action sheet.
247301
///
248302
/// 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
@@ -79,6 +79,33 @@ class ZulipLocalizationsAr extends ZulipLocalizations {
7979
@override
8080
String get actionSheetOptionUnfollowTopic => 'Unfollow topic';
8181

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

lib/generated/l10n/zulip_localizations_en.dart

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

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

lib/generated/l10n/zulip_localizations_ja.dart

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

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

lib/generated/l10n/zulip_localizations_nb.dart

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

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

lib/generated/l10n/zulip_localizations_pl.dart

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

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

lib/generated/l10n/zulip_localizations_ru.dart

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

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

lib/generated/l10n/zulip_localizations_sk.dart

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

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

0 commit comments

Comments
 (0)