TF-1915 SendingState of SendingEmail updates according to the work done in WorkManager when network connectivity is restored
(cherry picked from commit 744c8bc8dc8a82cb3afb75aead5a744adaae5501)
This commit is contained in:
+6
@@ -6,6 +6,7 @@ import 'package:tmail_ui_user/features/email/data/datasource_impl/email_hive_cac
|
||||
import 'package:tmail_ui_user/features/sending_queue/data/repository/sending_queue_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/repository/sending_queue_repository.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_multiple_sending_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_sending_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/delete_single_sending_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/get_all_sending_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_manager.dart';
|
||||
@@ -13,6 +14,8 @@ import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/store_sending_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/update_sending_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
||||
|
||||
@@ -36,9 +39,12 @@ class SendingQueueInteractorBindings extends InteractorsBindings {
|
||||
|
||||
@override
|
||||
void bindingsInteractor() {
|
||||
Get.lazyPut(() => StoreSendingEmailInteractor(Get.find<SendingQueueRepository>()));
|
||||
Get.lazyPut(() => GetAllSendingEmailInteractor(Get.find<SendingQueueRepository>()));
|
||||
Get.lazyPut(() => DeleteSingleSendingEmailInteractor(Get.find<SendingQueueRepository>()));
|
||||
Get.lazyPut(() => DeleteMultipleSendingEmailInteractor(Get.find<DeleteSingleSendingEmailInteractor>()));
|
||||
Get.lazyPut(() => DeleteSendingEmailInteractor(Get.find<SendingQueueRepository>()));
|
||||
Get.lazyPut(() => UpdateSendingEmailInteractor(Get.find<SendingQueueRepository>()));
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
|
||||
import 'package:tmail_ui_user/features/composer/domain/extensions/sending_email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/extensions/sending_email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
|
||||
extension ListSendingEmailExtension on List<SendingEmail> {
|
||||
List<SendingEmail> toggleSelection({required SendingEmail sendingEmailSelected}) =>
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
enum SendingEmailActionType {
|
||||
create,
|
||||
edit,
|
||||
delete;
|
||||
|
||||
@@ -13,6 +14,8 @@ enum SendingEmailActionType {
|
||||
return AppLocalizations.of(context).delete;
|
||||
case SendingEmailActionType.edit:
|
||||
return AppLocalizations.of(context).edit;
|
||||
case SendingEmailActionType.create:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +25,8 @@ enum SendingEmailActionType {
|
||||
return 'button_delete_sending_email';
|
||||
case SendingEmailActionType.edit:
|
||||
return 'button_edit_sending_email';
|
||||
case SendingEmailActionType.create:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +36,8 @@ enum SendingEmailActionType {
|
||||
return AppColor.colorDeletePermanentlyButton;
|
||||
case SendingEmailActionType.edit:
|
||||
return AppColor.primaryColor;
|
||||
case SendingEmailActionType.create:
|
||||
return Colors.transparent;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +47,8 @@ enum SendingEmailActionType {
|
||||
return AppColor.colorDeletePermanentlyButton;
|
||||
case SendingEmailActionType.edit:
|
||||
return AppColor.primaryColor;
|
||||
case SendingEmailActionType.create:
|
||||
return Colors.transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_action_type.dart';
|
||||
import 'package:tmail_ui_user/main/routes/router_arguments.dart';
|
||||
|
||||
class SendingEmailArguments extends RouterArguments {
|
||||
final Session session;
|
||||
final AccountId accountId;
|
||||
final EmailRequest emailRequest;
|
||||
final CreateNewMailboxRequest? mailboxRequest;
|
||||
final SendingEmailActionType sendingEmailActionType;
|
||||
|
||||
SendingEmailArguments(
|
||||
this.session,
|
||||
this.accountId,
|
||||
this.emailRequest,
|
||||
this.mailboxRequest,
|
||||
{
|
||||
this.sendingEmailActionType = SendingEmailActionType.create
|
||||
}
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
session,
|
||||
accountId,
|
||||
emailRequest,
|
||||
mailboxRequest,
|
||||
sendingEmailActionType
|
||||
];
|
||||
}
|
||||
@@ -13,10 +13,11 @@ import 'package:model/extensions/list_email_content_extension.dart';
|
||||
import 'package:model/mailbox/select_mode.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/message_dialog_action_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/network_status_handle/presentation/network_connnection_controller.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/scheduler/worker_state.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_isolate_manager.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/controller/work_scheduler_controller.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/state/delete_multiple_sending_email_state.dart';
|
||||
@@ -31,6 +32,7 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi
|
||||
final DeleteMultipleSendingEmailInteractor _deleteMultipleSendingEmailInteractor;
|
||||
|
||||
final dashboardController = getBinding<MailboxDashBoardController>();
|
||||
final _networkConnectionController = getBinding<NetworkConnectionController>();
|
||||
final _sendingQueueIsolateManager = getBinding<SendingQueueIsolateManager>();
|
||||
final _imagePaths = getBinding<ImagePaths>();
|
||||
final _appToast = getBinding<AppToast>();
|
||||
@@ -112,10 +114,12 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi
|
||||
_deleteSendingEmailAction(context, listSendingEmails);
|
||||
break;
|
||||
case SendingEmailActionType.edit:
|
||||
if (dashboardController?.networkConnectionController.isNetworkConnectionAvailable() == false) {
|
||||
if (_networkConnectionController?.isNetworkConnectionAvailable() == false) {
|
||||
_editSendingEmailAction(listSendingEmails.first);
|
||||
}
|
||||
break;
|
||||
case SendingEmailActionType.create:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,7 +178,7 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi
|
||||
|
||||
_appToast!.showToastSuccessMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).deleteSomeOfflineEmailSuccessfully
|
||||
AppLocalizations.of(currentContext!).messageHaveBeenDeletedSuccessfully
|
||||
);
|
||||
|
||||
_refreshSendingQueue();
|
||||
@@ -182,6 +186,8 @@ class SendingQueueController extends BaseController with MessageDialogActionMixi
|
||||
}
|
||||
|
||||
void _editSendingEmailAction(SendingEmail sendingEmail) {
|
||||
disableSelectionMode();
|
||||
|
||||
final arguments = ComposerArguments(
|
||||
emailActionType: EmailActionType.edit,
|
||||
presentationEmail: sendingEmail.presentationEmail,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
|
||||
class SendingQueueUtils {
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:model/mailbox/select_mode.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_utils.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/views/button/button_builder.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/extensions/list_sending_email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_action_type.dart';
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:model/extensions/presentation_email_extension.dart';
|
||||
import 'package:model/mailbox/select_mode.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_action_type.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_utils.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/widgets/sending_state_widget.dart';
|
||||
|
||||
Reference in New Issue
Block a user