TF-1190 Handle SetError when send message
This commit is contained in:
@@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
class NotFoundOutboxMailboxException implements Exception {
|
|
||||||
NotFoundOutboxMailboxException();
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||||
|
|
||||||
|
class SetEmailMethodException implements Exception {
|
||||||
|
|
||||||
|
final Map<Id, SetError> mapErrors;
|
||||||
|
|
||||||
|
SetEmailMethodException(this.mapErrors);
|
||||||
|
}
|
||||||
@@ -26,5 +26,5 @@ class SendEmailFailure extends FeatureFailure {
|
|||||||
SendEmailFailure(this.exception);
|
SendEmailFailure(this.exception);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object> get props => [exception];
|
List<Object?> get props => [exception];
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
|
import 'package:core/presentation/state/success.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||||
@@ -6,14 +7,12 @@ import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.da
|
|||||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
|
||||||
import 'package:uuid/uuid.dart';
|
|
||||||
|
|
||||||
class SendEmailInteractor {
|
class SendEmailInteractor {
|
||||||
final EmailRepository _emailRepository;
|
final EmailRepository _emailRepository;
|
||||||
final MailboxRepository _mailboxRepository;
|
final MailboxRepository _mailboxRepository;
|
||||||
final Uuid _uuid;
|
|
||||||
|
|
||||||
SendEmailInteractor(this._emailRepository, this._mailboxRepository, this._uuid);
|
SendEmailInteractor(this._emailRepository, this._mailboxRepository);
|
||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(
|
Stream<Either<Failure, Success>> execute(
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
@@ -31,13 +30,21 @@ class SendEmailInteractor {
|
|||||||
final currentMailboxState = listState.first;
|
final currentMailboxState = listState.first;
|
||||||
final currentEmailState = listState.last;
|
final currentEmailState = listState.last;
|
||||||
|
|
||||||
final result = await _emailRepository.sendEmail(accountId, emailRequest, mailboxRequest: mailboxRequest);
|
final result = await _emailRepository.sendEmail(
|
||||||
|
accountId,
|
||||||
|
emailRequest,
|
||||||
|
mailboxRequest: mailboxRequest
|
||||||
|
);
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
yield Right<Failure, Success>(SendEmailSuccess(
|
yield Right<Failure, Success>(
|
||||||
|
SendEmailSuccess(
|
||||||
currentEmailState: currentEmailState,
|
currentEmailState: currentEmailState,
|
||||||
currentMailboxState: currentMailboxState));
|
currentMailboxState: currentMailboxState
|
||||||
|
)
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
yield Left<Failure, Success>(SendEmailFailure(result));
|
yield Left<Failure, Success>(SendEmailFailure(null));
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
yield Left<Failure, Success>(SendEmailFailure(e));
|
yield Left<Failure, Success>(SendEmailFailure(e));
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ import 'package:tmail_ui_user/features/upload/presentation/controller/upload_con
|
|||||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||||
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
||||||
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
|
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
|
||||||
import 'package:uuid/uuid.dart';
|
|
||||||
import 'package:worker_manager/worker_manager.dart';
|
import 'package:worker_manager/worker_manager.dart';
|
||||||
|
|
||||||
class ComposerBindings extends BaseBindings {
|
class ComposerBindings extends BaseBindings {
|
||||||
@@ -132,9 +131,9 @@ class ComposerBindings extends BaseBindings {
|
|||||||
Get.lazyPut(() => LocalFilePickerInteractor());
|
Get.lazyPut(() => LocalFilePickerInteractor());
|
||||||
Get.lazyPut(() => UploadAttachmentInteractor(Get.find<ComposerRepository>()));
|
Get.lazyPut(() => UploadAttachmentInteractor(Get.find<ComposerRepository>()));
|
||||||
Get.lazyPut(() => SendEmailInteractor(
|
Get.lazyPut(() => SendEmailInteractor(
|
||||||
Get.find<EmailRepository>(),
|
Get.find<EmailRepository>(),
|
||||||
Get.find<MailboxRepository>(),
|
Get.find<MailboxRepository>()
|
||||||
Get.find<Uuid>()));
|
));
|
||||||
Get.lazyPut(() => SaveEmailAsDraftsInteractor(
|
Get.lazyPut(() => SaveEmailAsDraftsInteractor(
|
||||||
Get.find<EmailRepository>(),
|
Get.find<EmailRepository>(),
|
||||||
Get.find<MailboxRepository>()));
|
Get.find<MailboxRepository>()));
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:core/core.dart';
|
|||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import 'package:jmap_dart_client/http/http_client.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/capability/core_capability.dart';
|
import 'package:jmap_dart_client/jmap/core/capability/core_capability.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
|
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/reference_id.dart';
|
import 'package:jmap_dart_client/jmap/core/reference_id.dart';
|
||||||
@@ -27,6 +29,7 @@ import 'package:jmap_dart_client/jmap/mail/email/submission/email_submission.dar
|
|||||||
import 'package:jmap_dart_client/jmap/mail/email/submission/email_submission_id.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/submission/email_submission_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/submission/envelope.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/submission/envelope.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/submission/set/set_email_submission_method.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/submission/set/set_email_submission_method.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/email/submission/set/set_email_submission_response.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/set/set_mailbox_method.dart';
|
import 'package:jmap_dart_client/jmap/mail/mailbox/set/set_mailbox_method.dart';
|
||||||
import 'package:model/account/account_request.dart';
|
import 'package:model/account/account_request.dart';
|
||||||
@@ -43,6 +46,8 @@ import 'package:model/extensions/mailbox_id_extension.dart';
|
|||||||
import 'package:model/extensions/session_extension.dart';
|
import 'package:model/extensions/session_extension.dart';
|
||||||
import 'package:model/oidc/token.dart';
|
import 'package:model/oidc/token.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
|
import 'package:tmail_ui_user/features/base/mixin/handle_error_mixin.dart';
|
||||||
|
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_email_method_exception.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/download_attachment_for_web_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/download_attachment_for_web_state.dart';
|
||||||
@@ -50,7 +55,7 @@ import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_ex
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||||
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
||||||
|
|
||||||
class EmailAPI {
|
class EmailAPI with HandleSetErrorMixin {
|
||||||
|
|
||||||
final HttpClient _httpClient;
|
final HttpClient _httpClient;
|
||||||
final DownloadManager _downloadManager;
|
final DownloadManager _downloadManager;
|
||||||
@@ -93,9 +98,9 @@ class EmailAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> sendEmail(
|
Future<bool> sendEmail(
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
EmailRequest emailRequest,
|
EmailRequest emailRequest,
|
||||||
{CreateNewMailboxRequest? mailboxRequest}
|
{CreateNewMailboxRequest? mailboxRequest}
|
||||||
) async {
|
) async {
|
||||||
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
|
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
|
||||||
|
|
||||||
@@ -158,21 +163,55 @@ class EmailAPI {
|
|||||||
setEmailInvocation.methodCallId,
|
setEmailInvocation.methodCallId,
|
||||||
SetEmailResponse.deserialize);
|
SetEmailResponse.deserialize);
|
||||||
|
|
||||||
final setEmailSubmissionResponse = response.parse<SetEmailResponse>(
|
final setEmailSubmissionResponse = response.parse<SetEmailSubmissionResponse>(
|
||||||
setEmailSubmissionInvocation.methodCallId,
|
setEmailSubmissionInvocation.methodCallId,
|
||||||
SetEmailResponse.deserialize,
|
SetEmailSubmissionResponse.deserialize,
|
||||||
methodName: setEmailInvocation.methodName);
|
methodName: setEmailInvocation.methodName);
|
||||||
|
|
||||||
final emailCreated = setEmailResponse?.created?[emailNeedsToBeCreated.id.id];
|
final emailCreated = setEmailResponse?.created?[emailNeedsToBeCreated.id.id];
|
||||||
if (emailCreated != null) {
|
final listEntriesErrors = _handleSetEmailResponse(
|
||||||
return setEmailSubmissionResponse?.notUpdated == null &&
|
response: setEmailResponse,
|
||||||
setEmailSubmissionResponse?.notCreated == null &&
|
submissionResponse: setEmailSubmissionResponse
|
||||||
setEmailSubmissionResponse?.notDestroyed == null;
|
);
|
||||||
|
final mapErrors = Map.fromEntries(listEntriesErrors);
|
||||||
|
|
||||||
|
if (emailCreated != null && mapErrors.isEmpty) {
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
throw SetEmailMethodException(mapErrors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<MapEntry<Id, SetError>> _handleSetEmailResponse({
|
||||||
|
SetEmailResponse? response,
|
||||||
|
SetEmailSubmissionResponse? submissionResponse
|
||||||
|
}) {
|
||||||
|
final List<MapEntry<Id, SetError>> remainedErrors = [];
|
||||||
|
if (response != null) {
|
||||||
|
handleSetErrors(
|
||||||
|
notDestroyedError: response.notDestroyed,
|
||||||
|
notUpdatedError: response.notUpdated,
|
||||||
|
notCreatedError: response.notCreated,
|
||||||
|
unCatchErrorHandler: (setErrorEntry) {
|
||||||
|
remainedErrors.add(setErrorEntry);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (submissionResponse != null) {
|
||||||
|
handleSetErrors(
|
||||||
|
notDestroyedError: submissionResponse.notDestroyed,
|
||||||
|
notUpdatedError: submissionResponse.notUpdated,
|
||||||
|
notCreatedError: submissionResponse.notCreated,
|
||||||
|
unCatchErrorHandler: (setErrorEntry) {
|
||||||
|
remainedErrors.add(setErrorEntry);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return remainedErrors;
|
||||||
|
}
|
||||||
|
|
||||||
Future<List<Email>> markAsRead(AccountId accountId, List<Email> emails, ReadActions readActions) async {
|
Future<List<Email>> markAsRead(AccountId accountId, List<Email> emails, ReadActions readActions) async {
|
||||||
final emailIds = emails.map((email) => email.id).toList();
|
final emailIds = emails.map((email) => email.id).toList();
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import 'package:core/core.dart';
|
|||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:core/core.dart';
|
|||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
|||||||
+48
-8
@@ -11,6 +11,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/capability/mail_capability.dart';
|
import 'package:jmap_dart_client/jmap/core/capability/mail_capability.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/error/set_error.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
@@ -22,6 +23,7 @@ import 'package:pointer_interceptor/pointer_interceptor.dart';
|
|||||||
import 'package:rxdart/transformers.dart';
|
import 'package:rxdart/transformers.dart';
|
||||||
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
|
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_email_method_exception.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
|
||||||
@@ -274,14 +276,7 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
viewState.value.fold(
|
viewState.value.fold(
|
||||||
(failure) {
|
(failure) {
|
||||||
if (failure is SendEmailFailure) {
|
if (failure is SendEmailFailure) {
|
||||||
if (currentOverlayContext != null && currentContext != null) {
|
_handleSendEmailFailure(failure);
|
||||||
_appToast.showToastWithIcon(
|
|
||||||
currentOverlayContext!,
|
|
||||||
textColor: AppColor.toastErrorBackgroundColor,
|
|
||||||
message: AppLocalizations.of(currentContext!).message_has_been_sent_failure,
|
|
||||||
icon: _imagePaths.icSendToast);
|
|
||||||
}
|
|
||||||
clearState();
|
|
||||||
} else if (failure is SaveEmailAsDraftsFailure
|
} else if (failure is SaveEmailAsDraftsFailure
|
||||||
|| failure is RemoveEmailDraftsFailure
|
|| failure is RemoveEmailDraftsFailure
|
||||||
|| failure is UpdateEmailDraftsFailure) {
|
|| failure is UpdateEmailDraftsFailure) {
|
||||||
@@ -1547,6 +1542,51 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool get isDraggingMailbox => _isDraggingMailbox.value;
|
bool get isDraggingMailbox => _isDraggingMailbox.value;
|
||||||
|
|
||||||
|
void _handleSendEmailFailure(SendEmailFailure failure) {
|
||||||
|
logError('MailboxDashBoardController::_handleSendEmailFailure():failure: $failure');
|
||||||
|
if (currentContext == null) {
|
||||||
|
clearState();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
final exception = failure.exception;
|
||||||
|
logError('MailboxDashBoardController::_handleSendEmailFailure():exception: $exception');
|
||||||
|
if (exception is SetEmailMethodException) {
|
||||||
|
final listErrors = exception.mapErrors.values.toList();
|
||||||
|
final toastSuccess = _handleSetErrors(listErrors);
|
||||||
|
if (!toastSuccess) {
|
||||||
|
_showToastSendMessageFailure(AppLocalizations.of(currentContext!).message_has_been_sent_failure);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_showToastSendMessageFailure(AppLocalizations.of(currentContext!).message_has_been_sent_failure);
|
||||||
|
}
|
||||||
|
|
||||||
|
clearState();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool _handleSetErrors(List<SetError> listErrors) {
|
||||||
|
for (var error in listErrors) {
|
||||||
|
if (error.type == SetError.tooLarge) {
|
||||||
|
_showToastSendMessageFailure(AppLocalizations.of(currentContext!).sendMessageFailureWithSetErrorTypeTooLarge);
|
||||||
|
return true;
|
||||||
|
} else if (error.type == SetError.overQuota) {
|
||||||
|
_showToastSendMessageFailure(AppLocalizations.of(currentContext!).sendMessageFailureWithSetErrorTypeOverQuota);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void _showToastSendMessageFailure(String message) {
|
||||||
|
if (currentOverlayContext != null) {
|
||||||
|
_appToast.showToastWithIcon(
|
||||||
|
currentOverlayContext!,
|
||||||
|
textColor: AppColor.toastErrorBackgroundColor,
|
||||||
|
message: message,
|
||||||
|
icon: _imagePaths.icSendToast
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"@@last_modified": "2023-01-27T17:10:17.205660",
|
"@@last_modified": "2023-02-02T19:29:42.134695",
|
||||||
"initializing_data": "Initializing data...",
|
"initializing_data": "Initializing data...",
|
||||||
"@initializing_data": {
|
"@initializing_data": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -2649,5 +2649,17 @@
|
|||||||
"type": "text",
|
"type": "text",
|
||||||
"placeholders_order": [],
|
"placeholders_order": [],
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
|
},
|
||||||
|
"sendMessageFailureWithSetErrorTypeTooLarge": "Failure to send your message, because it is too large.",
|
||||||
|
"@sendMessageFailureWithSetErrorTypeTooLarge": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders_order": [],
|
||||||
|
"placeholders": {}
|
||||||
|
},
|
||||||
|
"sendMessageFailureWithSetErrorTypeOverQuota": "Failure to send your message, because it is over quota.",
|
||||||
|
"@sendMessageFailureWithSetErrorTypeOverQuota": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders_order": [],
|
||||||
|
"placeholders": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2719,4 +2719,18 @@ class AppLocalizations {
|
|||||||
'Let\'s reduce some filters and try again',
|
'Let\'s reduce some filters and try again',
|
||||||
name: 'reduceSomeFiltersAndTryAgain');
|
name: 'reduceSomeFiltersAndTryAgain');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get sendMessageFailureWithSetErrorTypeTooLarge {
|
||||||
|
return Intl.message(
|
||||||
|
'Failure to send your message, because it is too large.',
|
||||||
|
name: 'sendMessageFailureWithSetErrorTypeTooLarge',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get sendMessageFailureWithSetErrorTypeOverQuota {
|
||||||
|
return Intl.message(
|
||||||
|
'Failure to send your message, because it is over quota.',
|
||||||
|
name: 'sendMessageFailureWithSetErrorTypeOverQuota',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user