diff --git a/lib/features/email/presentation/email_controller.dart b/lib/features/email/presentation/email_controller.dart index c60c51e90..5ba748778 100644 --- a/lib/features/email/presentation/email_controller.dart +++ b/lib/features/email/presentation/email_controller.dart @@ -95,7 +95,10 @@ class EmailController extends BaseController with AppLoaderMixin { Identity? _identitySelected; List? initialEmailContents; late Worker emailWorker; - late Debouncer _deBouncerTime; + final Debouncer _getEmailDeBouncer = Debouncer( + const Duration(milliseconds: 800), + initialValue: null, + ); final Queue presentationEmailsLoaded = Queue(); PageController? pageController; int currentIndexPageView = 0; @@ -152,7 +155,7 @@ class EmailController extends BaseController with AppLoaderMixin { void onClose() { _downloadProgressStateController.close(); pageController?.dispose(); - _deBouncerTime.cancel(); + _getEmailDeBouncer.cancel(); _clearWorker(); super.onClose(); } @@ -187,10 +190,7 @@ class EmailController extends BaseController with AppLoaderMixin { } void _initializeDebounceTimeIndexPageViewChange() { - _deBouncerTime = Debouncer( - const Duration(milliseconds: 800), - initialValue: null); - _deBouncerTime.values.listen((value) async { + _getEmailDeBouncer.values.listen((value) async { if(value !=null) { _getEmailContentAction(listEmail[value].id); } @@ -201,10 +201,10 @@ class EmailController extends BaseController with AppLoaderMixin { emailWorker = ever(mailboxDashBoardController.selectedEmail, (presentationEmail) { log('EmailController::_initWorker(): $presentationEmail'); if (presentationEmail is PresentationEmail) { - if (_currentEmailId != presentationEmail.id) { + if (_currentEmailId != presentationEmail.id) { _currentEmailId = presentationEmail.id; _setCurrentPositionEmailInListEmail(_currentEmailId); - _deBouncerTime.value = currentIndexPageView; + _getEmailDeBouncer.value = currentIndexPageView; _resetToOriginalValue(); if (!presentationEmail.hasRead) { markAsEmailRead(presentationEmail, ReadActions.markAsRead); @@ -342,7 +342,7 @@ class EmailController extends BaseController with AppLoaderMixin { success.attachments.toList(), success.emailCurrent, ); - presentationEmailsLoaded.removeWhere((e) => e == emailLoaded); + presentationEmailsLoaded.removeWhere((e) => e.emailCurrent!.id == emailLoaded.emailCurrent!.id); presentationEmailsLoaded.add(emailLoaded); emailContents.value = success.emailContentsDisplayed; initialEmailContents = success.emailContents; diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index fe88983db..70dbdf67f 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -96,8 +96,8 @@ class EmailView extends GetWidget { itemCount: controller.listEmail.length, controller: controller.pageController, onPageChanged: controller.onPageChanged, - itemBuilder: (context, _) { - return _buildEmailBody(context, email); + itemBuilder: (context, index) { + return _buildEmailBody(context, controller.listEmail[index]); }), ), const Divider(color: AppColor.colorDividerHorizontal, height: 1),