diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index b90d17f9e..fefb6ad57 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'package:core/core.dart'; import 'package:dartz/dartz.dart'; -import 'package:fcm/model/type_name.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -70,6 +69,7 @@ import 'package:tmail_ui_user/features/network_status_handle/presentation/networ import 'package:tmail_ui_user/features/push_notification/domain/state/get_email_state_to_refresh_state.dart'; import 'package:tmail_ui_user/features/push_notification/domain/state/get_mailbox_state_to_refresh_state.dart'; import 'package:tmail_ui_user/features/push_notification/domain/usecases/delete_email_state_to_refresh_interactor.dart'; +import 'package:tmail_ui_user/features/push_notification/domain/usecases/delete_mailbox_state_to_refresh_interactor.dart'; import 'package:tmail_ui_user/features/push_notification/domain/usecases/get_email_state_to_refresh_interactor.dart'; import 'package:tmail_ui_user/features/push_notification/domain/usecases/get_mailbox_state_to_refresh_interactor.dart'; import 'package:tmail_ui_user/features/push_notification/presentation/controller/fcm_controller.dart'; @@ -121,6 +121,7 @@ class MailboxDashBoardController extends ReloadableController { GetEmailStateToRefreshInteractor? _getEmailStateToRefreshInteractor; DeleteEmailStateToRefreshInteractor? _deleteEmailStateToRefreshInteractor; GetMailboxStateToRefreshInteractor? _getMailboxStateToRefreshInteractor; + DeleteMailboxStateToRefreshInteractor? _deleteMailboxStateToRefreshInteractor; final scaffoldKey = GlobalKey(); final selectedMailbox = Rxn(); @@ -236,6 +237,7 @@ class MailboxDashBoardController extends ReloadableController { _deleteEmailStateToRefreshAction(); } else if (success is GetMailboxStateToRefreshSuccess) { dispatchAction(RefreshChangeMailboxAction(success.storedState)); + _deleteMailboxStateToRefreshAction(); } } ); @@ -1312,7 +1314,19 @@ class MailboxDashBoardController extends ReloadableController { logError('MailboxDashBoardController::_deleteEmailStateToRefreshAction(): $e'); } if (_deleteEmailStateToRefreshInteractor != null) { - consumeState(_deleteEmailStateToRefreshInteractor!.execute(TypeName.emailType)); + consumeState(_deleteEmailStateToRefreshInteractor!.execute()); + } + } + + void _deleteMailboxStateToRefreshAction() { + log('MailboxDashBoardController::_deleteMailboxStateToRefreshAction():'); + try { + _deleteMailboxStateToRefreshInteractor = getBinding(); + } catch (e) { + logError('MailboxDashBoardController::_deleteMailboxStateToRefreshAction(): $e'); + } + if (_deleteMailboxStateToRefreshInteractor != null) { + consumeState(_deleteMailboxStateToRefreshInteractor!.execute()); } } diff --git a/lib/features/push_notification/domain/state/delete_mailbox_state_to_refresh_state.dart b/lib/features/push_notification/domain/state/delete_mailbox_state_to_refresh_state.dart new file mode 100644 index 000000000..7c6f8df65 --- /dev/null +++ b/lib/features/push_notification/domain/state/delete_mailbox_state_to_refresh_state.dart @@ -0,0 +1,22 @@ + +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; + +class DeleteMailboxStateToRefreshLoading extends UIState {} + +class DeleteMailboxStateToRefreshSuccess extends UIState { + + DeleteMailboxStateToRefreshSuccess(); + + @override + List get props => []; +} + +class DeleteMailboxStateToRefreshFailure extends FeatureFailure { + final dynamic exception; + + DeleteMailboxStateToRefreshFailure(this.exception); + + @override + List get props => [exception]; +} \ No newline at end of file diff --git a/lib/features/push_notification/domain/usecases/delete_email_state_to_refresh_interactor.dart b/lib/features/push_notification/domain/usecases/delete_email_state_to_refresh_interactor.dart index 5ffebb6f8..e5a992df9 100644 --- a/lib/features/push_notification/domain/usecases/delete_email_state_to_refresh_interactor.dart +++ b/lib/features/push_notification/domain/usecases/delete_email_state_to_refresh_interactor.dart @@ -10,10 +10,10 @@ class DeleteEmailStateToRefreshInteractor { DeleteEmailStateToRefreshInteractor(this._fcmRepository); - Stream> execute(TypeName typeName) async* { + Stream> execute() async* { try { yield Right(DeleteEmailStateToRefreshLoading()); - await _fcmRepository.deleteStateToRefresh(typeName); + await _fcmRepository.deleteStateToRefresh(TypeName.emailType); yield Right(DeleteEmailStateToRefreshSuccess()); } catch (e) { yield Left(DeleteEmailStateToRefreshFailure(e)); diff --git a/lib/features/push_notification/domain/usecases/delete_mailbox_state_to_refresh_interactor.dart b/lib/features/push_notification/domain/usecases/delete_mailbox_state_to_refresh_interactor.dart new file mode 100644 index 000000000..cc3c6db62 --- /dev/null +++ b/lib/features/push_notification/domain/usecases/delete_mailbox_state_to_refresh_interactor.dart @@ -0,0 +1,22 @@ +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:dartz/dartz.dart'; +import 'package:fcm/model/type_name.dart'; +import 'package:tmail_ui_user/features/push_notification/domain/repository/fcm_repository.dart'; +import 'package:tmail_ui_user/features/push_notification/domain/state/delete_mailbox_state_to_refresh_state.dart'; + +class DeleteMailboxStateToRefreshInteractor { + final FCMRepository _fcmRepository; + + DeleteMailboxStateToRefreshInteractor(this._fcmRepository); + + Stream> execute() async* { + try { + yield Right(DeleteMailboxStateToRefreshLoading()); + await _fcmRepository.deleteStateToRefresh(TypeName.mailboxType); + yield Right(DeleteMailboxStateToRefreshSuccess()); + } catch (e) { + yield Left(DeleteMailboxStateToRefreshFailure(e)); + } + } +} \ No newline at end of file