Skip to content

Commit 23046b7

Browse files
authored
Merge pull request #3088 from bitfriend/activate-integration-test
Chain the draft & builder methods sequentially
2 parents 457ce04 + 5d220fb commit 23046b7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2091
-1134
lines changed

app/lib/features/attachments/actions/handle_selected_attachments.dart

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import 'dart:typed_data';
44
import 'package:acter/common/models/types.dart';
55
import 'package:acter/features/home/providers/client_providers.dart';
66
import 'package:acter/features/notifications/actions/autosubscribe.dart';
7+
import 'package:acter/l10n/generated/l10n.dart';
78
import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart'
89
show AttachmentDraft, AttachmentsManager, RefDetails;
910
import 'package:flutter/material.dart';
1011
import 'package:flutter_easyloading/flutter_easyloading.dart';
11-
import 'package:acter/l10n/generated/l10n.dart';
1212
import 'package:flutter_riverpod/flutter_riverpod.dart';
1313
import 'package:logging/logging.dart';
1414
import 'package:mime/mime.dart';
@@ -41,35 +41,35 @@ Future<void> handleAttachmentSelected({
4141
attachmentType == AttachmentType.image) {
4242
Uint8List bytes = await file.readAsBytes();
4343
final decodedImage = await decodeImageFromList(bytes);
44-
final imageDraft = client
45-
.imageDraft(file.path, mimeType)
46-
.filename(title ?? fileName)
47-
.size(bytes.length)
48-
.width(decodedImage.width)
49-
.height(decodedImage.height);
44+
final imageDraft =
45+
client.imageDraft(file.path, mimeType)
46+
..filename(title ?? fileName)
47+
..size(bytes.length)
48+
..width(decodedImage.width)
49+
..height(decodedImage.height);
5050
final attachmentDraft = await manager.contentDraft(imageDraft);
5151
drafts.add(attachmentDraft);
5252
} else if (attachmentType == AttachmentType.audio) {
5353
Uint8List bytes = await file.readAsBytes();
54-
final audioDraft = client
55-
.audioDraft(file.path, mimeType)
56-
.filename(title ?? fileName)
57-
.size(bytes.length);
54+
final audioDraft =
55+
client.audioDraft(file.path, mimeType)
56+
..filename(title ?? fileName)
57+
..size(bytes.length);
5858
final attachmentDraft = await manager.contentDraft(audioDraft);
5959
drafts.add(attachmentDraft);
6060
} else if (attachmentType == AttachmentType.video) {
6161
Uint8List bytes = await file.readAsBytes();
62-
final videoDraft = client
63-
.videoDraft(file.path, mimeType)
64-
.filename(title ?? fileName)
65-
.size(bytes.length);
62+
final videoDraft =
63+
client.videoDraft(file.path, mimeType)
64+
..filename(title ?? fileName)
65+
..size(bytes.length);
6666
final attachmentDraft = await manager.contentDraft(videoDraft);
6767
drafts.add(attachmentDraft);
6868
} else {
69-
final fileDraft = client
70-
.fileDraft(file.path, mimeType)
71-
.filename(title ?? fileName)
72-
.size(file.lengthSync());
69+
final fileDraft =
70+
client.fileDraft(file.path, mimeType)
71+
..filename(title ?? fileName)
72+
..size(file.lengthSync());
7373
final attachmentDraft = await manager.contentDraft(fileDraft);
7474
drafts.add(attachmentDraft);
7575
}

app/lib/features/chat/widgets/custom_input.dart

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -510,11 +510,11 @@ class __ChatInputState extends ConsumerState<_ChatInput> {
510510
attachmentType == AttachmentType.image) {
511511
final bytes = file.readAsBytesSync();
512512
final image = await decodeImageFromList(bytes);
513-
final imageDraft = client
514-
.imageDraft(file.path, mimeType)
515-
.size(fileLen)
516-
.width(image.width)
517-
.height(image.height);
513+
final imageDraft =
514+
client.imageDraft(file.path, mimeType)
515+
..size(fileLen)
516+
..width(image.width)
517+
..height(image.height);
518518
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
519519
final remoteId = inputState.selectedMessage?.remoteId;
520520
if (remoteId == null) throw 'remote id of sel msg not available';
@@ -524,9 +524,8 @@ class __ChatInputState extends ConsumerState<_ChatInput> {
524524
}
525525
} else if (mimeType.startsWith('audio/') &&
526526
attachmentType == AttachmentType.audio) {
527-
final audioDraft = client
528-
.audioDraft(file.path, mimeType)
529-
.size(file.lengthSync());
527+
final audioDraft = client.audioDraft(file.path, mimeType)
528+
..size(file.lengthSync());
530529
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
531530
final remoteId = inputState.selectedMessage?.remoteId;
532531
if (remoteId == null) throw 'remote id of sel msg not available';
@@ -536,9 +535,8 @@ class __ChatInputState extends ConsumerState<_ChatInput> {
536535
}
537536
} else if (mimeType.startsWith('video/') &&
538537
attachmentType == AttachmentType.video) {
539-
final videoDraft = client
540-
.videoDraft(file.path, mimeType)
541-
.size(file.lengthSync());
538+
final videoDraft = client.videoDraft(file.path, mimeType)
539+
..size(file.lengthSync());
542540
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
543541
final remoteId = inputState.selectedMessage?.remoteId;
544542
if (remoteId == null) throw 'remote id of sel msg not available';
@@ -547,9 +545,8 @@ class __ChatInputState extends ConsumerState<_ChatInput> {
547545
await stream.sendMessage(videoDraft);
548546
}
549547
} else {
550-
final fileDraft = client
551-
.fileDraft(file.path, mimeType)
552-
.size(file.lengthSync());
548+
final fileDraft = client.fileDraft(file.path, mimeType)
549+
..size(file.lengthSync());
553550
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
554551
final remoteId = inputState.selectedMessage?.remoteId;
555552
if (remoteId == null) throw 'remote id of sel msg not available';
@@ -648,7 +645,7 @@ class __ChatInputState extends ConsumerState<_ChatInput> {
648645
MsgDraft draft = client.textMarkdownDraft(markdownText);
649646

650647
for (final userId in userMentions) {
651-
draft = draft.addMention(userId);
648+
draft.addMention(userId);
652649
}
653650

654651
// actually send it out

app/lib/features/chat_ng/actions/attachment_upload_action.dart

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ Future<void> attachmentUploadAction({
3434
attachmentType == AttachmentType.camera)) {
3535
final bytes = file.readAsBytesSync();
3636
final image = await decodeImageFromList(bytes);
37-
final imageDraft = client
38-
.imageDraft(file.path, mimeType)
39-
.size(fileLen)
40-
.width(image.width)
41-
.height(image.height);
37+
final imageDraft =
38+
client.imageDraft(file.path, mimeType)
39+
..size(fileLen)
40+
..width(image.width)
41+
..height(image.height);
4242
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
4343
final remoteId = inputState.selectedMessage?.remoteId;
4444
if (remoteId == null) throw 'remote id of sel msg not available';
@@ -48,9 +48,8 @@ Future<void> attachmentUploadAction({
4848
}
4949
} else if (mimeType.startsWith('audio/') &&
5050
attachmentType == AttachmentType.audio) {
51-
final audioDraft = client
52-
.audioDraft(file.path, mimeType)
53-
.size(file.lengthSync());
51+
final audioDraft = client.audioDraft(file.path, mimeType)
52+
..size(file.lengthSync());
5453
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
5554
final remoteId = inputState.selectedMessage?.remoteId;
5655
if (remoteId == null) throw 'remote id of sel msg not available';
@@ -60,9 +59,8 @@ Future<void> attachmentUploadAction({
6059
}
6160
} else if (mimeType.startsWith('video/') &&
6261
attachmentType == AttachmentType.video) {
63-
final videoDraft = client
64-
.videoDraft(file.path, mimeType)
65-
.size(file.lengthSync());
62+
final videoDraft = client.videoDraft(file.path, mimeType)
63+
..size(file.lengthSync());
6664
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
6765
final remoteId = inputState.selectedMessage?.remoteId;
6866
if (remoteId == null) throw 'remote id of sel msg not available';
@@ -71,9 +69,8 @@ Future<void> attachmentUploadAction({
7169
await stream.sendMessage(videoDraft);
7270
}
7371
} else {
74-
final fileDraft = client
75-
.fileDraft(file.path, mimeType)
76-
.size(file.lengthSync());
72+
final fileDraft = client.fileDraft(file.path, mimeType)
73+
..size(file.lengthSync());
7774
if (inputState.selectedMessageState == SelectedMessageState.replyTo) {
7875
final remoteId = inputState.selectedMessage?.remoteId;
7976
if (remoteId == null) throw 'remote id of sel msg not available';

app/lib/features/comments/actions/submit_comment.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ Future<String?> submitComment(
1919
}
2020
EasyLoading.show(status: lang.submittingComment);
2121
try {
22-
final draft = manager.commentDraft();
23-
draft.contentFormatted(trimmedPlainText, htmlBodyDescription);
22+
final draft =
23+
manager.commentDraft()
24+
..contentFormatted(trimmedPlainText, htmlBodyDescription);
2425
final id = await draft.send();
2526
FocusManager.instance.primaryFocus?.unfocus();
2627
EasyLoading.showToast(lang.commentSubmitted);

app/lib/features/events/actions/save_event_locations.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ Future<void> saveEventLocations({
2626
return;
2727
}
2828

29-
final updateBuilder = calendarEvent.updateBuilder();
30-
updateBuilder.unsetLocations();
29+
final updateBuilder = calendarEvent.updateBuilder()..unsetLocations();
3130

3231
for (final location in locations) {
3332
if (location.type == LocationType.physical) {

app/lib/features/events/pages/create_event_page.dart

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -522,21 +522,18 @@ class CreateEventPageConsumerState extends ConsumerState<CreateEventPage> {
522522
_selectedEndTime,
523523
);
524524

525-
// Convert utc time zone
526-
final utcStartDateTime = startDateTime.toUtc().toIso8601String();
527-
final utcEndDateTime = endDateTime.toUtc().toIso8601String();
528-
529525
// Creating calendar event
530-
final space = await ref.read(spaceProvider(spaceId).future);
531-
final draft = space.calendarEventDraft();
532526
final title = _eventNameController.text;
533-
// Description text
534-
final plainDescription = textEditorState.intoMarkdown();
535-
final htmlBodyDescription = textEditorState.intoHtml();
536-
draft.title(title);
537-
draft.utcStartFromRfc3339(utcStartDateTime);
538-
draft.utcEndFromRfc3339(utcEndDateTime);
539-
draft.descriptionHtml(plainDescription, htmlBodyDescription);
527+
final space = await ref.read(spaceProvider(spaceId).future);
528+
final draft =
529+
space.calendarEventDraft()
530+
..title(title)
531+
..utcStartFromRfc3339(startDateTime.toUtc().toIso8601String())
532+
..utcEndFromRfc3339(endDateTime.toUtc().toIso8601String())
533+
..descriptionHtml(
534+
textEditorState.intoMarkdown(),
535+
textEditorState.intoHtml(),
536+
);
540537

541538
// Add locations to the event
542539
final locations = ref.read(eventDraftLocationsProvider);
@@ -576,8 +573,7 @@ class CreateEventPageConsumerState extends ConsumerState<CreateEventPage> {
576573

577574
/// Event is created, set RSVP status to `Yes` by default for host.
578575
final rsvpManager = await calendarEvent.rsvps();
579-
final rsvpDraft = rsvpManager.rsvpDraft();
580-
rsvpDraft.status('yes');
576+
final rsvpDraft = rsvpManager.rsvpDraft()..status('yes');
581577
await rsvpDraft.send();
582578
_log.info('Created Calendar Event: $eventId');
583579

app/lib/features/events/pages/event_details_page.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -399,13 +399,12 @@ class _EventDetailPageConsumerState extends ConsumerState<EventDetailPage> {
399399
calendarEventProvider(widget.calendarId).future,
400400
);
401401
final rsvpManager = await event.rsvps();
402-
final draft = rsvpManager.rsvpDraft();
403402
final statusStr = switch (status) {
404403
RsvpStatusTag.Yes => 'yes',
405404
RsvpStatusTag.No => 'no',
406405
RsvpStatusTag.Maybe => 'maybe',
407406
};
408-
draft.status(statusStr);
407+
final draft = rsvpManager.rsvpDraft()..status(statusStr);
409408
final rsvpId = await draft.send();
410409
_log.info('new rsvp id: $rsvpId');
411410

app/lib/features/events/utils/events_utils.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ Future<void> saveEventTitle({
1919
final lang = L10n.of(context);
2020
try {
2121
EasyLoading.show(status: lang.updateName);
22-
final updateBuilder = calendarEvent.updateBuilder();
23-
updateBuilder.title(newName);
22+
final updateBuilder = calendarEvent.updateBuilder()..title(newName);
2423
final eventId = await updateBuilder.send();
2524
_log.info('Calendar Event Title Updated $eventId');
2625
await autosubscribe(
@@ -54,8 +53,9 @@ Future<void> saveEventDescription({
5453
final lang = L10n.of(context);
5554
EasyLoading.show(status: lang.updatingDescription);
5655
try {
57-
final updateBuilder = calendarEvent.updateBuilder();
58-
updateBuilder.descriptionHtml(plainDescription, htmlBodyDescription);
56+
final updateBuilder =
57+
calendarEvent.updateBuilder()
58+
..descriptionHtml(plainDescription, htmlBodyDescription);
5959
await updateBuilder.send();
6060
await autosubscribe(
6161
ref: ref,
@@ -121,7 +121,7 @@ String eventDateFormat(DateTime dateTime) {
121121
return DateFormat('MMM dd, yyyy').format(dateTime);
122122
}
123123

124-
String getDateFormat(UtcDateTime utcDateTime){
124+
String getDateFormat(UtcDateTime utcDateTime) {
125125
final localDateTime = toDartDatetime(utcDateTime).toLocal();
126126
return DateFormat('dd MMMM, yyyy').format(localDateTime);
127127
}

app/lib/features/events/widgets/change_date_sheet.dart

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -333,14 +333,11 @@ class _ChangeDateSheetState extends ConsumerState<ChangeDateSheet> {
333333
_selectedEndTime,
334334
);
335335

336-
// Convert UTC time zone
337-
final utcStartDateTime = startDateTime.toUtc().toIso8601String();
338-
final utcEndDateTime = endDateTime.toUtc().toIso8601String();
339-
340336
// Updating calender event
341-
final updateBuilder = calendarEvent.updateBuilder();
342-
updateBuilder.utcStartFromRfc3339(utcStartDateTime);
343-
updateBuilder.utcEndFromRfc3339(utcEndDateTime);
337+
final updateBuilder =
338+
calendarEvent.updateBuilder()
339+
..utcStartFromRfc3339(startDateTime.toUtc().toIso8601String())
340+
..utcEndFromRfc3339(endDateTime.toUtc().toIso8601String());
344341
final eventId = await updateBuilder.send();
345342
_log.info('Calendar Event updated $eventId');
346343

app/lib/features/news/actions/make_image_slide.dart

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import 'package:acter/common/providers/sdk_provider.dart';
22
import 'package:acter/common/utils/utils.dart';
33
import 'package:acter/features/home/providers/client_providers.dart';
44
import 'package:acter/features/news/model/news_slide_model.dart';
5+
import 'package:acter/l10n/generated/l10n.dart';
56
import 'package:acter_flutter_sdk/acter_flutter_sdk_ffi.dart';
67
import 'package:flutter/material.dart';
78
import 'package:flutter/services.dart';
8-
import 'package:acter/l10n/generated/l10n.dart';
99
import 'package:flutter_riverpod/flutter_riverpod.dart';
1010
import 'package:mime/mime.dart';
1111

@@ -15,16 +15,15 @@ Future<NewsSlideDraft> makeImageSlideForNews(
1515
L10n lang,
1616
) async {
1717
final imageDraft = await createImageMsgDraftDraft(ref, slidePost, lang);
18-
final imageSlideDraft = imageDraft.intoNewsSlideDraft();
19-
2018
final sdk = await ref.read(sdkProvider.future);
21-
imageSlideDraft.color(
22-
sdk.api.newColorizeBuilder(
23-
null,
24-
slidePost.backgroundColor?.toInt(),
25-
slidePost.linkColor?.toInt(),
26-
),
19+
20+
final colorizeBuilder = sdk.api.newColorizeBuilder(
21+
null,
22+
slidePost.backgroundColor?.toInt(),
23+
slidePost.linkColor?.toInt(),
2724
);
25+
final imageSlideDraft =
26+
imageDraft.intoNewsSlideDraft()..color(colorizeBuilder);
2827

2928
final refDetails = slidePost.refDetails;
3029
if (refDetails != null) {
@@ -40,16 +39,15 @@ Future<StorySlideDraft> makeImageSlideForStory(
4039
L10n lang,
4140
) async {
4241
final imageDraft = await createImageMsgDraftDraft(ref, slidePost, lang);
43-
final imageSlideDraft = imageDraft.intoStorySlideDraft();
44-
4542
final sdk = await ref.read(sdkProvider.future);
46-
imageSlideDraft.color(
47-
sdk.api.newColorizeBuilder(
48-
null,
49-
slidePost.backgroundColor?.toInt(),
50-
slidePost.linkColor?.toInt(),
51-
),
43+
44+
final colorizeBuilder = sdk.api.newColorizeBuilder(
45+
null,
46+
slidePost.backgroundColor?.toInt(),
47+
slidePost.linkColor?.toInt(),
5248
);
49+
final imageSlideDraft =
50+
imageDraft.intoStorySlideDraft()..color(colorizeBuilder);
5351

5452
final refDetails = slidePost.refDetails;
5553
if (refDetails != null) {
@@ -77,10 +75,10 @@ Future<MsgDraft> createImageMsgDraftDraft(
7775
}
7876
Uint8List bytes = await file.readAsBytes();
7977
final decodedImage = await decodeImageFromList(bytes);
80-
final imageDraft = client
81-
.imageDraft(file.path, mimeType)
82-
.size(bytes.length)
83-
.width(decodedImage.width)
84-
.height(decodedImage.height);
78+
final imageDraft =
79+
client.imageDraft(file.path, mimeType)
80+
..size(bytes.length)
81+
..width(decodedImage.width)
82+
..height(decodedImage.height);
8583
return imageDraft;
8684
}

0 commit comments

Comments
 (0)