TF-996: add email_parent_controller.dart
This commit is contained in:
+22
-60
@@ -1,12 +1,10 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:collection';
|
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
@@ -29,6 +27,7 @@ import 'package:tmail_ui_user/features/base/base_controller.dart';
|
|||||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/controller/email_parent_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_request.dart';
|
||||||
@@ -69,6 +68,7 @@ import 'package:uuid/uuid.dart';
|
|||||||
class EmailController extends BaseController with AppLoaderMixin {
|
class EmailController extends BaseController with AppLoaderMixin {
|
||||||
|
|
||||||
final mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
final mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
||||||
|
final emailParentController = Get.find<EmailParentController>();
|
||||||
final responsiveUtils = Get.find<ResponsiveUtils>();
|
final responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
final imagePaths = Get.find<ImagePaths>();
|
final imagePaths = Get.find<ImagePaths>();
|
||||||
final _appToast = Get.find<AppToast>();
|
final _appToast = Get.find<AppToast>();
|
||||||
@@ -99,25 +99,16 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
const Duration(milliseconds: 800),
|
const Duration(milliseconds: 800),
|
||||||
initialValue: null,
|
initialValue: null,
|
||||||
);
|
);
|
||||||
final Queue<EmailLoaded> presentationEmailsLoaded = Queue();
|
|
||||||
PageController? pageController;
|
|
||||||
int currentIndexPageView = -1;
|
|
||||||
final canGetNewerEmail = true.obs;
|
|
||||||
final canGetOlderEmail = true.obs;
|
|
||||||
final StreamController<Either<Failure, Success>> _downloadProgressStateController =
|
final StreamController<Either<Failure, Success>> _downloadProgressStateController =
|
||||||
StreamController<Either<Failure, Success>>.broadcast();
|
StreamController<Either<Failure, Success>>.broadcast();
|
||||||
Stream<Either<Failure, Success>> get downloadProgressState => _downloadProgressStateController.stream;
|
Stream<Either<Failure, Success>> get downloadProgressState => _downloadProgressStateController.stream;
|
||||||
|
|
||||||
PresentationEmail? get currentEmail => mailboxDashBoardController.selectedEmail.value;
|
PresentationEmail? get currentEmail => emailParentController.selectedEmail.value;
|
||||||
|
|
||||||
bool get isDisplayFullEmailAddress => emailAddressExpandMode.value == ExpandMode.EXPAND;
|
bool get isDisplayFullEmailAddress => emailAddressExpandMode.value == ExpandMode.EXPAND;
|
||||||
|
|
||||||
bool get isDisplayFullAttachments => attachmentsExpandMode.value == ExpandMode.EXPAND;
|
bool get isDisplayFullAttachments => attachmentsExpandMode.value == ExpandMode.EXPAND;
|
||||||
|
|
||||||
RxList<PresentationEmail> get listEmail => mailboxDashBoardController.searchController.isSearchEmailRunning && !kIsWeb ?
|
|
||||||
mailboxDashBoardController.listResultSearch : mailboxDashBoardController.emailsInCurrentMailbox;
|
|
||||||
|
|
||||||
|
|
||||||
EmailController(
|
EmailController(
|
||||||
this._getEmailContentInteractor,
|
this._getEmailContentInteractor,
|
||||||
this._markAsEmailReadInteractor,
|
this._markAsEmailReadInteractor,
|
||||||
@@ -141,8 +132,9 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
@override
|
@override
|
||||||
void onReady() {
|
void onReady() {
|
||||||
injectMdnBindings(
|
injectMdnBindings(
|
||||||
mailboxDashBoardController.sessionCurrent,
|
emailParentController.sessionCurrent,
|
||||||
mailboxDashBoardController.accountId.value);
|
emailParentController.accountId,
|
||||||
|
);
|
||||||
try {
|
try {
|
||||||
_sendReceiptToSenderInteractor = Get.find<SendReceiptToSenderInteractor>();
|
_sendReceiptToSenderInteractor = Get.find<SendReceiptToSenderInteractor>();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -154,57 +146,27 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
_downloadProgressStateController.close();
|
_downloadProgressStateController.close();
|
||||||
pageController?.dispose();
|
|
||||||
_getEmailDeBouncer.cancel();
|
_getEmailDeBouncer.cancel();
|
||||||
_clearWorker();
|
_clearWorker();
|
||||||
super.onClose();
|
super.onClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setCurrentPositionEmailInListEmail(EmailId? currentEmailId) {
|
|
||||||
currentIndexPageView = listEmail.indexWhere((e) => e.id == currentEmailId);
|
|
||||||
if(pageController != null && pageController!.hasClients && pageController!.page?.toInt() != currentIndexPageView) {
|
|
||||||
pageController!.jumpToPage(currentIndexPageView);
|
|
||||||
} else {
|
|
||||||
pageController = PageController(initialPage: currentIndexPageView);
|
|
||||||
}
|
|
||||||
_checkEnableNavigatorPageView();
|
|
||||||
}
|
|
||||||
|
|
||||||
void onPageChanged(int index) {
|
|
||||||
mailboxDashBoardController.selectedEmail.value = listEmail[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
void _checkEnableNavigatorPageView() {
|
|
||||||
canGetNewerEmail.value = currentIndexPageView > 0;
|
|
||||||
canGetOlderEmail.value = listEmail.length > 1 && currentIndexPageView < listEmail.length - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void getNewerEmail() {
|
|
||||||
currentIndexPageView = currentIndexPageView - 1;
|
|
||||||
pageController?.jumpToPage(currentIndexPageView);
|
|
||||||
}
|
|
||||||
|
|
||||||
void getOlderEmail() {
|
|
||||||
currentIndexPageView = currentIndexPageView + 1;
|
|
||||||
pageController?.jumpToPage(currentIndexPageView);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _initializeDebounceTimeIndexPageViewChange() {
|
void _initializeDebounceTimeIndexPageViewChange() {
|
||||||
_getEmailDeBouncer.values.listen((value) async {
|
_getEmailDeBouncer.values.listen((value) async {
|
||||||
if(value !=null) {
|
if(value !=null) {
|
||||||
_getEmailContentAction(listEmail[value].id);
|
_getEmailContentAction(emailParentController.listEmail[value].id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initWorker() {
|
void _initWorker() {
|
||||||
emailWorker = ever(mailboxDashBoardController.selectedEmail, (presentationEmail) {
|
emailWorker = ever(emailParentController.selectedEmail, (presentationEmail) {
|
||||||
log('EmailController::_initWorker(): $presentationEmail');
|
log('EmailController::_initWorker(): $presentationEmail');
|
||||||
if (presentationEmail is PresentationEmail) {
|
if (presentationEmail is PresentationEmail) {
|
||||||
if (_currentEmailId != presentationEmail.id) {
|
if (_currentEmailId != presentationEmail.id) {
|
||||||
_currentEmailId = presentationEmail.id;
|
_currentEmailId = presentationEmail.id;
|
||||||
_setCurrentPositionEmailInListEmail(_currentEmailId);
|
emailParentController.setCurrentPositionEmailInListEmail(_currentEmailId);
|
||||||
_getEmailDeBouncer.value = currentIndexPageView;
|
_getEmailDeBouncer.value = emailParentController.currentIndexPageView;
|
||||||
_resetToOriginalValue();
|
_resetToOriginalValue();
|
||||||
if (!presentationEmail.hasRead) {
|
if (!presentationEmail.hasRead) {
|
||||||
markAsEmailRead(presentationEmail, ReadActions.markAsRead);
|
markAsEmailRead(presentationEmail, ReadActions.markAsRead);
|
||||||
@@ -228,7 +190,7 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
(failure) => null,
|
(failure) => null,
|
||||||
(success) {
|
(success) {
|
||||||
if (success is StartDownloadAttachmentForWeb) {
|
if (success is StartDownloadAttachmentForWeb) {
|
||||||
mailboxDashBoardController.addDownloadTask(
|
emailParentController.mailboxDashBoardController.addDownloadTask(
|
||||||
DownloadTaskState(
|
DownloadTaskState(
|
||||||
taskId: success.taskId,
|
taskId: success.taskId,
|
||||||
attachment: success.attachment));
|
attachment: success.attachment));
|
||||||
@@ -243,7 +205,7 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
final percent = success.progress.round();
|
final percent = success.progress.round();
|
||||||
log('EmailController::DownloadingAttachmentForWeb(): $percent%');
|
log('EmailController::DownloadingAttachmentForWeb(): $percent%');
|
||||||
|
|
||||||
mailboxDashBoardController.updateDownloadTask(
|
emailParentController.mailboxDashBoardController.updateDownloadTask(
|
||||||
success.taskId,
|
success.taskId,
|
||||||
(currentTask) {
|
(currentTask) {
|
||||||
final newTask = currentTask.copyWith(
|
final newTask = currentTask.copyWith(
|
||||||
@@ -259,7 +221,7 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _getAllIdentities() {
|
void _getAllIdentities() {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = emailParentController.accountId;
|
||||||
if (accountId != null) {
|
if (accountId != null) {
|
||||||
consumeState(_getAllIdentitiesInteractor.execute(accountId));
|
consumeState(_getAllIdentitiesInteractor.execute(accountId));
|
||||||
}
|
}
|
||||||
@@ -279,9 +241,9 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _getEmailContentAction(EmailId emailId) async {
|
void _getEmailContentAction(EmailId emailId) async {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = emailParentController.accountId;
|
||||||
final baseDownloadUrl = mailboxDashBoardController.sessionCurrent?.getDownloadUrl();
|
final baseDownloadUrl = emailParentController.sessionCurrent?.getDownloadUrl();
|
||||||
final currentEmail = presentationEmailsLoaded.where((e) => e.emailCurrent!.id == emailId);
|
final currentEmail = emailParentController.presentationEmailsLoaded.where((e) => e.emailCurrent!.id == emailId);
|
||||||
EmailLoaded? emailLoaded;
|
EmailLoaded? emailLoaded;
|
||||||
if(currentEmail.isNotEmpty) {
|
if(currentEmail.isNotEmpty) {
|
||||||
emailLoaded = currentEmail.first;
|
emailLoaded = currentEmail.first;
|
||||||
@@ -333,8 +295,8 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _getEmailContentSuccess(GetEmailContentSuccess success) {
|
void _getEmailContentSuccess(GetEmailContentSuccess success) {
|
||||||
if(presentationEmailsLoaded.length > ThreadConstants.defaultLimit.value.toInt()) {
|
if(emailParentController.presentationEmailsLoaded.length > ThreadConstants.defaultLimit.value.toInt()) {
|
||||||
presentationEmailsLoaded.removeFirst();
|
emailParentController.presentationEmailsLoaded.removeFirst();
|
||||||
}
|
}
|
||||||
final emailLoaded = EmailLoaded(
|
final emailLoaded = EmailLoaded(
|
||||||
success.emailContents.toList(),
|
success.emailContents.toList(),
|
||||||
@@ -342,8 +304,8 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
success.attachments.toList(),
|
success.attachments.toList(),
|
||||||
success.emailCurrent,
|
success.emailCurrent,
|
||||||
);
|
);
|
||||||
presentationEmailsLoaded.removeWhere((e) => e.emailCurrent!.id == emailLoaded.emailCurrent!.id);
|
emailParentController.presentationEmailsLoaded.removeWhere((e) => e.emailCurrent!.id == emailLoaded.emailCurrent!.id);
|
||||||
presentationEmailsLoaded.add(emailLoaded);
|
emailParentController.presentationEmailsLoaded.add(emailLoaded);
|
||||||
if(success.emailCurrent?.id == mailboxDashBoardController.selectedEmail.value?.id) {
|
if(success.emailCurrent?.id == mailboxDashBoardController.selectedEmail.value?.id) {
|
||||||
emailContents.value = success.emailContentsDisplayed;
|
emailContents.value = success.emailContentsDisplayed;
|
||||||
initialEmailContents = success.emailContents;
|
initialEmailContents = success.emailContents;
|
||||||
@@ -1004,8 +966,8 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void closeEmailView(BuildContext context) {
|
void closeEmailView(BuildContext context) {
|
||||||
presentationEmailsLoaded.removeWhere((e) => e.emailCurrent?.id == currentEmail?.id);
|
emailParentController.presentationEmailsLoaded.removeWhere((e) => e.emailCurrent?.id == currentEmail?.id);
|
||||||
currentIndexPageView = -1;
|
emailParentController.currentIndexPageView = -1;
|
||||||
_getEmailDeBouncer.value = null;
|
_getEmailDeBouncer.value = null;
|
||||||
mailboxDashBoardController.clearSelectedEmail();
|
mailboxDashBoardController.clearSelectedEmail();
|
||||||
_currentEmailId = null;
|
_currentEmailId = null;
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
import 'dart:collection';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
|
import 'package:model/model.dart';
|
||||||
|
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
|
|
||||||
|
class EmailParentController extends BaseController with AppLoaderMixin {
|
||||||
|
|
||||||
|
final mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
||||||
|
|
||||||
|
final Queue<EmailLoaded> presentationEmailsLoaded = Queue();
|
||||||
|
PageController? pageController;
|
||||||
|
int currentIndexPageView = -1;
|
||||||
|
final canGetNewerEmail = true.obs;
|
||||||
|
final canGetOlderEmail = true.obs;
|
||||||
|
|
||||||
|
Rxn<PresentationEmail> get selectedEmail => mailboxDashBoardController.selectedEmail;
|
||||||
|
Session? get sessionCurrent => mailboxDashBoardController.sessionCurrent;
|
||||||
|
AccountId? get accountId => mailboxDashBoardController.accountId.value;
|
||||||
|
|
||||||
|
RxList<PresentationEmail> get listEmail => mailboxDashBoardController.searchController.isSearchEmailRunning && !kIsWeb ?
|
||||||
|
mailboxDashBoardController.listResultSearch : mailboxDashBoardController.emailsInCurrentMailbox;
|
||||||
|
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onClose() {
|
||||||
|
pageController?.dispose();
|
||||||
|
super.onClose();
|
||||||
|
}
|
||||||
|
|
||||||
|
void setCurrentPositionEmailInListEmail(EmailId? currentEmailId) {
|
||||||
|
currentIndexPageView = listEmail.indexWhere((e) => e.id == currentEmailId);
|
||||||
|
if(pageController != null && pageController!.hasClients && pageController!.page?.toInt() != currentIndexPageView) {
|
||||||
|
pageController!.jumpToPage(currentIndexPageView);
|
||||||
|
} else {
|
||||||
|
pageController = PageController(initialPage: currentIndexPageView);
|
||||||
|
}
|
||||||
|
_checkEnableNavigatorPageView();
|
||||||
|
}
|
||||||
|
|
||||||
|
void onPageChanged(int index) {
|
||||||
|
mailboxDashBoardController.selectedEmail.value = listEmail[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
void _checkEnableNavigatorPageView() {
|
||||||
|
canGetNewerEmail.value = currentIndexPageView > 0;
|
||||||
|
canGetOlderEmail.value = listEmail.length > 1 && currentIndexPageView < listEmail.length - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void getNewerEmail() {
|
||||||
|
currentIndexPageView = currentIndexPageView - 1;
|
||||||
|
pageController?.jumpToPage(currentIndexPageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
void getOlderEmail() {
|
||||||
|
currentIndexPageView = currentIndexPageView + 1;
|
||||||
|
pageController?.jumpToPage(currentIndexPageView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onDone() {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,7 +17,8 @@ import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_i
|
|||||||
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart';
|
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/email/domain/usecases/move_to_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart';
|
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/email_controller.dart';
|
import 'package:tmail_ui_user/features/email/presentation/controller/email_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/controller/email_parent_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart';
|
import 'package:tmail_ui_user/features/login/data/datasource/account_datasource.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart';
|
import 'package:tmail_ui_user/features/login/data/datasource/authentication_oidc_datasource.dart';
|
||||||
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
|
import 'package:tmail_ui_user/features/login/data/datasource_impl/authentication_oidc_datasource_impl.dart';
|
||||||
@@ -53,6 +54,7 @@ class EmailBindings extends BaseBindings {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsController() {
|
void bindingsController() {
|
||||||
|
Get.put(EmailParentController());
|
||||||
Get.put(EmailController(
|
Get.put(EmailController(
|
||||||
Get.find<GetEmailContentInteractor>(),
|
Get.find<GetEmailContentInteractor>(),
|
||||||
Get.find<MarkAsEmailReadInteractor>(),
|
Get.find<MarkAsEmailReadInteractor>(),
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/email_controller.dart';
|
import 'package:tmail_ui_user/features/email/presentation/controller/email_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/app_bar_mail_widget_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/attachment_file_tile_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart';
|
||||||
@@ -93,11 +93,11 @@ class EmailView extends GetWidget<EmailController> {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: PageView.builder(
|
child: PageView.builder(
|
||||||
physics: kIsWeb ? const NeverScrollableScrollPhysics() : null,
|
physics: kIsWeb ? const NeverScrollableScrollPhysics() : null,
|
||||||
itemCount: controller.listEmail.length,
|
itemCount: controller.emailParentController.listEmail.length,
|
||||||
controller: controller.pageController,
|
controller: controller.emailParentController.pageController,
|
||||||
onPageChanged: controller.onPageChanged,
|
onPageChanged: controller.emailParentController.onPageChanged,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
return _buildEmailBody(context, controller.listEmail[index]);
|
return _buildEmailBody(context, controller.emailParentController.listEmail[index]);
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
const Divider(color: AppColor.colorDividerHorizontal, height: 1),
|
const Divider(color: AppColor.colorDividerHorizontal, height: 1),
|
||||||
@@ -165,21 +165,21 @@ class EmailView extends GetWidget<EmailController> {
|
|||||||
buildIconWeb(
|
buildIconWeb(
|
||||||
icon: SvgPicture.asset(
|
icon: SvgPicture.asset(
|
||||||
imagePaths.icNewer,
|
imagePaths.icNewer,
|
||||||
color: controller.canGetNewerEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon,
|
color: controller.emailParentController.canGetNewerEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon,
|
||||||
width: IconUtils.defaultIconSize,
|
width: IconUtils.defaultIconSize,
|
||||||
height: IconUtils.defaultIconSize,
|
height: IconUtils.defaultIconSize,
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
tooltip: AppLocalizations.of(context).newer,
|
tooltip: AppLocalizations.of(context).newer,
|
||||||
onTap: controller.canGetNewerEmail.value ? controller.getNewerEmail : null),
|
onTap: controller.emailParentController.canGetNewerEmail.value ? controller.emailParentController.getNewerEmail : null),
|
||||||
buildIconWeb(
|
buildIconWeb(
|
||||||
icon: SvgPicture.asset(
|
icon: SvgPicture.asset(
|
||||||
imagePaths.icOlder,
|
imagePaths.icOlder,
|
||||||
width: IconUtils.defaultIconSize,
|
width: IconUtils.defaultIconSize,
|
||||||
height: IconUtils.defaultIconSize,
|
height: IconUtils.defaultIconSize,
|
||||||
color: controller.canGetOlderEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon,
|
color: controller.emailParentController.canGetOlderEmail.value ? AppColor.primaryColor : AppColor.colorAttachmentIcon,
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
tooltip: AppLocalizations.of(context).older,
|
tooltip: AppLocalizations.of(context).older,
|
||||||
onTap: controller.canGetOlderEmail.value ? controller.getOlderEmail : null),
|
onTap: controller.emailParentController.canGetOlderEmail.value ? controller.emailParentController.getOlderEmail : null),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user