TF-2644 Display warning dialog when drag from other email exceeded maximum size in composer
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -80,6 +80,7 @@ import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_
|
|||||||
import 'package:tmail_ui_user/features/server_settings/domain/state/get_always_read_receipt_setting_state.dart';
|
import 'package:tmail_ui_user/features/server_settings/domain/state/get_always_read_receipt_setting_state.dart';
|
||||||
import 'package:tmail_ui_user/features/server_settings/domain/usecases/get_always_read_receipt_setting_interactor.dart';
|
import 'package:tmail_ui_user/features/server_settings/domain/usecases/get_always_read_receipt_setting_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/extensions/list_file_info_extension.dart';
|
import 'package:tmail_ui_user/features/upload/domain/extensions/list_file_info_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/upload/domain/extensions/list_file_info_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/model/upload_task_id.dart';
|
import 'package:tmail_ui_user/features/upload/domain/model/upload_task_id.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart';
|
import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/state/local_file_picker_state.dart';
|
import 'package:tmail_ui_user/features/upload/domain/state/local_file_picker_state.dart';
|
||||||
@@ -1075,7 +1076,7 @@ class ComposerController extends BaseController {
|
|||||||
|
|
||||||
void _handlePickFileSuccess(LocalFilePickerSuccess success) {
|
void _handlePickFileSuccess(LocalFilePickerSuccess success) {
|
||||||
uploadController.validateTotalSizeAttachmentsBeforeUpload(
|
uploadController.validateTotalSizeAttachmentsBeforeUpload(
|
||||||
listFileInfo: success.pickedFiles,
|
totalSizePreparedFiles: success.pickedFiles.totalSize,
|
||||||
callbackAction: () => _uploadAttachmentsAction(success.pickedFiles)
|
callbackAction: () => _uploadAttachmentsAction(success.pickedFiles)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1297,7 +1298,7 @@ class ComposerController extends BaseController {
|
|||||||
if (listFileAttachmentSharedMediaFile.isNotEmpty) {
|
if (listFileAttachmentSharedMediaFile.isNotEmpty) {
|
||||||
final listFileInfo = covertListSharedMediaFileToFileInfo(listSharedMediaFile);
|
final listFileInfo = covertListSharedMediaFileToFileInfo(listSharedMediaFile);
|
||||||
uploadController.validateTotalSizeAttachmentsBeforeUpload(
|
uploadController.validateTotalSizeAttachmentsBeforeUpload(
|
||||||
listFileInfo: listFileInfo,
|
totalSizePreparedFiles: listFileInfo.totalSize,
|
||||||
callbackAction: () => _uploadAttachmentsAction(listFileInfo)
|
callbackAction: () => _uploadAttachmentsAction(listFileInfo)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1969,7 +1970,7 @@ class ComposerController extends BaseController {
|
|||||||
|
|
||||||
void _addAttachmentFromDragAndDrop({required FileInfo fileInfo}) {
|
void _addAttachmentFromDragAndDrop({required FileInfo fileInfo}) {
|
||||||
uploadController.validateTotalSizeAttachmentsBeforeUpload(
|
uploadController.validateTotalSizeAttachmentsBeforeUpload(
|
||||||
listFileInfo: [fileInfo],
|
totalSizePreparedFiles: fileInfo.fileSize,
|
||||||
callbackAction: () => _uploadAttachmentsAction([fileInfo])
|
callbackAction: () => _uploadAttachmentsAction([fileInfo])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -2065,22 +2066,12 @@ class ComposerController extends BaseController {
|
|||||||
_updateStatusEmailSendButton();
|
_updateStatusEmailSendButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
void addAttachmentFromDropZone(Attachment attachment) {
|
void addAttachmentWhenDragFromOtherEmail(Attachment attachment) {
|
||||||
log('ComposerController::addAttachmentFromDropZone: $attachment');
|
log('ComposerController::addAttachmentWhenDragFromOtherEmail: attachment = $attachment');
|
||||||
if (!uploadController.isExceededMaxSizeAttachmentsPerEmail(totalSizePreparedFiles: attachment.size?.value ?? 0)) {
|
uploadController.validateTotalSizeAttachmentsBeforeUpload(
|
||||||
uploadController.initializeUploadAttachments([attachment]);
|
totalSizePreparedFiles: attachment.size?.value ?? 0,
|
||||||
} else {
|
callbackAction: () => uploadController.initializeUploadAttachments([attachment])
|
||||||
if (currentContext != null) {
|
);
|
||||||
showConfirmDialogAction(
|
|
||||||
currentContext!,
|
|
||||||
AppLocalizations.of(currentContext!).message_dialog_upload_attachments_exceeds_maximum_size(
|
|
||||||
filesize(mailboxDashBoardController.maxSizeAttachmentsPerEmail?.value ?? 0, 0)),
|
|
||||||
AppLocalizations.of(currentContext!).got_it,
|
|
||||||
title: AppLocalizations.of(currentContext!).maximum_files_size,
|
|
||||||
hasCancelButton: false,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _handleGetAllIdentitiesFailure(GetAllIdentitiesFailure failure) async {
|
void _handleGetAllIdentitiesFailure(GetAllIdentitiesFailure failure) async {
|
||||||
|
|||||||
@@ -385,7 +385,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
|||||||
child: DropZoneWidget(
|
child: DropZoneWidget(
|
||||||
width: constraints.maxWidth,
|
width: constraints.maxWidth,
|
||||||
height: constraints.maxHeight,
|
height: constraints.maxHeight,
|
||||||
addAttachmentFromDropZone: controller.addAttachmentFromDropZone,
|
addAttachmentFromDropZone: controller.addAttachmentWhenDragFromOtherEmail,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import 'package:tmail_ui_user/features/base/state/base_ui_state.dart';
|
|||||||
import 'package:tmail_ui_user/features/composer/domain/state/upload_attachment_state.dart';
|
import 'package:tmail_ui_user/features/composer/domain/state/upload_attachment_state.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/usecases/upload_attachment_interactor.dart';
|
import 'package:tmail_ui_user/features/composer/domain/usecases/upload_attachment_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/extensions/list_file_info_extension.dart';
|
|
||||||
import 'package:tmail_ui_user/features/upload/domain/model/upload_task_id.dart';
|
import 'package:tmail_ui_user/features/upload/domain/model/upload_task_id.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart';
|
import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/presentation/extensions/upload_attachment_extension.dart';
|
import 'package:tmail_ui_user/features/upload/presentation/extensions/upload_attachment_extension.dart';
|
||||||
@@ -294,12 +293,11 @@ class UploadController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void validateTotalSizeAttachmentsBeforeUpload({
|
void validateTotalSizeAttachmentsBeforeUpload({
|
||||||
required List<FileInfo> listFileInfo,
|
required num totalSizePreparedFiles,
|
||||||
VoidCallback? callbackAction
|
VoidCallback? callbackAction
|
||||||
}) {
|
}) {
|
||||||
final totalSizeListFiles = listFileInfo.totalSize;
|
log('UploadController::_validateTotalSizeAttachmentsBeforeUpload: totalSizePreparedFiles = $totalSizePreparedFiles');
|
||||||
log('UploadController::_validateTotalSizeAttachmentsBeforeUpload: totalSizeListFiles = $totalSizeListFiles');
|
if (isExceededMaxSizeAttachmentsPerEmail(totalSizePreparedFiles: totalSizePreparedFiles)) {
|
||||||
if (isExceededMaxSizeAttachmentsPerEmail(totalSizePreparedFiles: totalSizeListFiles)) {
|
|
||||||
if (currentContext == null) {
|
if (currentContext == null) {
|
||||||
log('UploadController::_validateTotalSizeAttachmentsBeforeUpload: CONTEXT IS NULL');
|
log('UploadController::_validateTotalSizeAttachmentsBeforeUpload: CONTEXT IS NULL');
|
||||||
return;
|
return;
|
||||||
@@ -309,7 +307,7 @@ class UploadController extends BaseController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isExceededMaxSizeFilesAttachedInComposer(totalSizePreparedFiles: totalSizeListFiles)) {
|
if (isExceededMaxSizeFilesAttachedInComposer(totalSizePreparedFiles: totalSizePreparedFiles)) {
|
||||||
if (currentContext == null) {
|
if (currentContext == null) {
|
||||||
log('UploadController::_validateTotalSizeAttachmentsBeforeUpload: CONTEXT IS NULL');
|
log('UploadController::_validateTotalSizeAttachmentsBeforeUpload: CONTEXT IS NULL');
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user