TF-616 Update presentation layer for MarkAsReadMailbox

This commit is contained in:
dab246
2022-06-30 11:16:20 +07:00
committed by Dat H. Pham
parent 71da676212
commit 589abfafb8
14 changed files with 246 additions and 134 deletions
@@ -15,6 +15,7 @@ import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/mailbox_data
import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/state_datasource_impl.dart';
import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart';
import 'package:tmail_ui_user/features/mailbox/data/repository/mailbox_repository_impl.dart';
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
import 'package:tmail_ui_user/features/mailbox/domain/usecases/create_new_mailbox_interactor.dart';
@@ -71,7 +72,7 @@ class MailboxBindings extends BaseBindings {
@override
void bindingsDataSourceImpl() {
Get.lazyPut(() => MailboxDataSourceImpl(Get.find<MailboxAPI>()));
Get.lazyPut(() => MailboxDataSourceImpl(Get.find<MailboxAPI>(), Get.find<MailboxIsolateWorker>()));
Get.lazyPut(() => MailboxCacheDataSourceImpl(Get.find<MailboxCacheManager>()));
Get.lazyPut(() => StateDataSourceImpl(Get.find<StateCacheClient>()));
Get.lazyPut(() => EmailDataSourceImpl(Get.find<EmailAPI>()));
@@ -105,8 +106,6 @@ class MailboxBindings extends BaseBindings {
DataSourceType.local: Get.find<MailboxCacheDataSourceImpl>()
},
Get.find<StateDataSource>(),
Get.find<ThreadDataSource>(),
Get.find<EmailDataSource>(),
));
}
}
@@ -54,7 +54,7 @@ import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_na
import 'package:tmail_ui_user/features/mailbox_creator/presentation/extensions/validator_failure_extension.dart';
import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/mailbox_creator_arguments.dart';
import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/new_mailbox_arguments.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/mark_as_mailbox_read_state.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
@@ -227,6 +227,7 @@ class MailboxController extends BaseMailboxController {
success is RemoveEmailDraftsSuccess ||
success is SendEmailSuccess ||
success is MarkAsMailboxReadAllSuccess ||
success is MarkAsMailboxReadHasSomeEmailFailure ||
success is UpdateEmailDraftsSuccess) {
refreshMailboxChanges();
}
@@ -502,7 +503,7 @@ class MailboxController extends BaseMailboxController {
_openDialogRenameMailboxAction(context, selectionMailbox.first);
break;
case MailboxActions.markAsRead:
_markAsReadMailboxAction(selectionMailbox.first);
_markAsReadMailboxAction(context, selectionMailbox.first);
break;
case MailboxActions.move:
_moveMailboxAction(selectionMailbox.first);
@@ -679,12 +680,19 @@ class MailboxController extends BaseMailboxController {
_cancelSelectMailbox();
}
void _markAsReadMailboxAction(PresentationMailbox presentationMailbox) {
void _markAsReadMailboxAction(BuildContext context, PresentationMailbox presentationMailbox) {
final accountId = mailboxDashBoardController.accountId.value;
final mailboxId = presentationMailbox.id;
final mailboxName = presentationMailbox.name;
final countEmailsUnread = presentationMailbox.unreadEmails?.value.value ?? 0;
if (accountId != null && mailboxName != null) {
mailboxDashBoardController.markAsReadMailbox(accountId, mailboxId, mailboxName);
mailboxDashBoardController.markAsReadMailbox(
accountId,
mailboxId,
mailboxName,
countEmailsUnread.toInt());
closeMailboxScreen(context);
}
}
@@ -809,7 +817,7 @@ class MailboxController extends BaseMailboxController {
_moveMailboxAction(mailbox);
break;
case MailboxActions.markAsRead:
_markAsReadMailboxAction(mailbox);
_markAsReadMailboxAction(context, mailbox);
break;
default:
break;