TF-437 Delete state change of mailbox after invoke refresh change in background/terminated
This commit is contained in:
+16
-2
@@ -2,7 +2,6 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:fcm/model/type_name.dart';
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.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_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/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_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_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/domain/usecases/get_mailbox_state_to_refresh_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/presentation/controller/fcm_controller.dart';
|
import 'package:tmail_ui_user/features/push_notification/presentation/controller/fcm_controller.dart';
|
||||||
@@ -121,6 +121,7 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
GetEmailStateToRefreshInteractor? _getEmailStateToRefreshInteractor;
|
GetEmailStateToRefreshInteractor? _getEmailStateToRefreshInteractor;
|
||||||
DeleteEmailStateToRefreshInteractor? _deleteEmailStateToRefreshInteractor;
|
DeleteEmailStateToRefreshInteractor? _deleteEmailStateToRefreshInteractor;
|
||||||
GetMailboxStateToRefreshInteractor? _getMailboxStateToRefreshInteractor;
|
GetMailboxStateToRefreshInteractor? _getMailboxStateToRefreshInteractor;
|
||||||
|
DeleteMailboxStateToRefreshInteractor? _deleteMailboxStateToRefreshInteractor;
|
||||||
|
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
final selectedMailbox = Rxn<PresentationMailbox>();
|
final selectedMailbox = Rxn<PresentationMailbox>();
|
||||||
@@ -236,6 +237,7 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
_deleteEmailStateToRefreshAction();
|
_deleteEmailStateToRefreshAction();
|
||||||
} else if (success is GetMailboxStateToRefreshSuccess) {
|
} else if (success is GetMailboxStateToRefreshSuccess) {
|
||||||
dispatchAction(RefreshChangeMailboxAction(success.storedState));
|
dispatchAction(RefreshChangeMailboxAction(success.storedState));
|
||||||
|
_deleteMailboxStateToRefreshAction();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -1312,7 +1314,19 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
logError('MailboxDashBoardController::_deleteEmailStateToRefreshAction(): $e');
|
logError('MailboxDashBoardController::_deleteEmailStateToRefreshAction(): $e');
|
||||||
}
|
}
|
||||||
if (_deleteEmailStateToRefreshInteractor != null) {
|
if (_deleteEmailStateToRefreshInteractor != null) {
|
||||||
consumeState(_deleteEmailStateToRefreshInteractor!.execute(TypeName.emailType));
|
consumeState(_deleteEmailStateToRefreshInteractor!.execute());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _deleteMailboxStateToRefreshAction() {
|
||||||
|
log('MailboxDashBoardController::_deleteMailboxStateToRefreshAction():');
|
||||||
|
try {
|
||||||
|
_deleteMailboxStateToRefreshInteractor = getBinding<DeleteMailboxStateToRefreshInteractor>();
|
||||||
|
} catch (e) {
|
||||||
|
logError('MailboxDashBoardController::_deleteMailboxStateToRefreshAction(): $e');
|
||||||
|
}
|
||||||
|
if (_deleteMailboxStateToRefreshInteractor != null) {
|
||||||
|
consumeState(_deleteMailboxStateToRefreshInteractor!.execute());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+22
@@ -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<Object> get props => [];
|
||||||
|
}
|
||||||
|
|
||||||
|
class DeleteMailboxStateToRefreshFailure extends FeatureFailure {
|
||||||
|
final dynamic exception;
|
||||||
|
|
||||||
|
DeleteMailboxStateToRefreshFailure(this.exception);
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [exception];
|
||||||
|
}
|
||||||
+2
-2
@@ -10,10 +10,10 @@ class DeleteEmailStateToRefreshInteractor {
|
|||||||
|
|
||||||
DeleteEmailStateToRefreshInteractor(this._fcmRepository);
|
DeleteEmailStateToRefreshInteractor(this._fcmRepository);
|
||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(TypeName typeName) async* {
|
Stream<Either<Failure, Success>> execute() async* {
|
||||||
try {
|
try {
|
||||||
yield Right<Failure, Success>(DeleteEmailStateToRefreshLoading());
|
yield Right<Failure, Success>(DeleteEmailStateToRefreshLoading());
|
||||||
await _fcmRepository.deleteStateToRefresh(typeName);
|
await _fcmRepository.deleteStateToRefresh(TypeName.emailType);
|
||||||
yield Right<Failure, Success>(DeleteEmailStateToRefreshSuccess());
|
yield Right<Failure, Success>(DeleteEmailStateToRefreshSuccess());
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
yield Left<Failure, Success>(DeleteEmailStateToRefreshFailure(e));
|
yield Left<Failure, Success>(DeleteEmailStateToRefreshFailure(e));
|
||||||
|
|||||||
+22
@@ -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<Either<Failure, Success>> execute() async* {
|
||||||
|
try {
|
||||||
|
yield Right<Failure, Success>(DeleteMailboxStateToRefreshLoading());
|
||||||
|
await _fcmRepository.deleteStateToRefresh(TypeName.mailboxType);
|
||||||
|
yield Right<Failure, Success>(DeleteMailboxStateToRefreshSuccess());
|
||||||
|
} catch (e) {
|
||||||
|
yield Left<Failure, Success>(DeleteMailboxStateToRefreshFailure(e));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user