TF-1180 Reorganize inject and get interactor

This commit is contained in:
dab246
2022-11-17 17:34:25 +07:00
committed by Dat H. Pham
parent 55fd880224
commit 6d5a58b1f8
2 changed files with 25 additions and 26 deletions
+3 -3
View File
@@ -119,7 +119,7 @@ abstract class BaseController extends GetxController
requireCapability(session!, accountId!, [CapabilityIdentifier.jmapMdn]);
MdnInteractorBindings().dependencies();
} catch(e) {
logError('ReloadableController::injectVacationBindings(): exception: $e');
logError('BaseController::injectMdnBindings(): exception: $e');
}
}
@@ -128,7 +128,7 @@ abstract class BaseController extends GetxController
requireCapability(session!, accountId!, [capabilityForward]);
ForwardingInteractorsBindings().dependencies();
} catch(e) {
logError('ReloadableController::injectForwardBindings(): exception: $e');
logError('BaseController::injectForwardBindings(): exception: $e');
}
}
@@ -137,7 +137,7 @@ abstract class BaseController extends GetxController
requireCapability(session!, accountId!, [capabilityRuleFilter]);
EmailRulesInteractorBindings().dependencies();
} catch(e) {
logError('ReloadableController::injectRuleFilterBindings(): exception: $e');
logError('BaseController::injectRuleFilterBindings(): exception: $e');
}
}
}
@@ -102,7 +102,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
EmailId? _currentEmailId;
Identity? _identitySelected;
List<EmailContent>? initialEmailContents;
late Worker emailWorker;
late Worker emailWorker, accountIdWorker;
final Debouncer<int?> _getEmailDeBouncer = Debouncer<int?>(
const Duration(milliseconds: 800),
initialValue: null,
@@ -134,31 +134,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
_initializeDebounceTimeIndexPageViewChange();
_registerListenerWorker();
_listenDownloadAttachmentProgressState();
injectRuleFilterBindings(
emailSupervisorController.sessionCurrent,
emailSupervisorController.accountId);
try {
_createNewEmailRuleFilterInteractor = Get.find<CreateNewEmailRuleFilterInteractor>();
} catch (e) {
logError('SingleEmailController::onInit(): ${e.toString()}');
}
super.onInit();
}
@override
void onReady() {
injectMdnBindings(
emailSupervisorController.sessionCurrent,
emailSupervisorController.accountId,
);
try {
_sendReceiptToSenderInteractor = Get.find<SendReceiptToSenderInteractor>();
} catch (e) {
logError('SingleEmailController::onReady(): SendReceiptToSenderInteractor not registered');
}
super.onReady();
}
@override
void onClose() {
_downloadProgressStateController.close();
@@ -176,6 +154,15 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
}
void _registerListenerWorker() {
accountIdWorker = ever(mailboxDashBoardController.accountId, (accountId) {
if (accountId is AccountId) {
_injectAndGetInteractorBindings(
mailboxDashBoardController.sessionCurrent,
accountId
);
}
});
emailWorker = ever(emailSupervisorController.selectedEmail, (presentationEmail) {
log('SingleEmailController::_initWorker(): $presentationEmail');
if (presentationEmail is PresentationEmail) {
@@ -242,6 +229,18 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
});
}
void _injectAndGetInteractorBindings(Session? session, AccountId accountId) {
injectRuleFilterBindings(session, accountId);
injectMdnBindings(session, accountId);
if (Get.isRegistered<CreateNewEmailRuleFilterInteractor>()) {
_createNewEmailRuleFilterInteractor = Get.find<CreateNewEmailRuleFilterInteractor>();
}
if (Get.isRegistered<SendReceiptToSenderInteractor>()) {
_sendReceiptToSenderInteractor = Get.find<SendReceiptToSenderInteractor>();
}
}
void _getAllIdentities() {
final accountId = emailSupervisorController.accountId;
if (accountId != null) {