TF-933 Get mailbox contain email when search activate in EmailView
This commit is contained in:
@@ -81,8 +81,6 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
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;
|
||||||
|
|
||||||
PresentationMailbox? get currentMailbox => mailboxDashBoardController.selectedMailbox.value;
|
|
||||||
|
|
||||||
PresentationEmail? get currentEmail => mailboxDashBoardController.selectedEmail.value;
|
PresentationEmail? get currentEmail => mailboxDashBoardController.selectedEmail.value;
|
||||||
|
|
||||||
EmailController(
|
EmailController(
|
||||||
@@ -240,9 +238,15 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
bool get isExpandEmailAddress => emailAddressExpandMode.value == ExpandMode.EXPAND;
|
bool get isExpandEmailAddress => emailAddressExpandMode.value == ExpandMode.EXPAND;
|
||||||
|
|
||||||
|
PresentationMailbox? getMailboxContain(PresentationEmail email) {
|
||||||
|
return mailboxDashBoardController.searchController.isSearchEmailRunning
|
||||||
|
? email.findMailboxContain(mailboxDashBoardController.mapMailbox)
|
||||||
|
: mailboxDashBoardController.selectedMailbox.value;
|
||||||
|
}
|
||||||
|
|
||||||
void markAsEmailRead(PresentationEmail presentationEmail, ReadActions readActions) async {
|
void markAsEmailRead(PresentationEmail presentationEmail, ReadActions readActions) async {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
final mailboxCurrent = mailboxDashBoardController.selectedMailbox.value;
|
final mailboxCurrent = getMailboxContain(presentationEmail);
|
||||||
if (accountId != null && mailboxCurrent != null) {
|
if (accountId != null && mailboxCurrent != null) {
|
||||||
consumeState(_markAsEmailReadInteractor.execute(accountId, presentationEmail.toEmail(), readActions));
|
consumeState(_markAsEmailReadInteractor.execute(accountId, presentationEmail.toEmail(), readActions));
|
||||||
}
|
}
|
||||||
@@ -432,7 +436,7 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void moveToMailbox(BuildContext context, PresentationEmail email) async {
|
void moveToMailbox(BuildContext context, PresentationEmail email) async {
|
||||||
final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
|
final currentMailbox = getMailboxContain(email);
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
|
|
||||||
if (currentMailbox != null && accountId != null) {
|
if (currentMailbox != null && accountId != null) {
|
||||||
@@ -503,11 +507,12 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
void moveToTrash(BuildContext context, PresentationEmail email) async {
|
void moveToTrash(BuildContext context, PresentationEmail email) async {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
final trashMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleTrash);
|
final trashMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleTrash);
|
||||||
|
final currentMailbox = getMailboxContain(email);
|
||||||
|
|
||||||
if (accountId != null && currentMailbox != null && trashMailboxId != null) {
|
if (accountId != null && currentMailbox != null && trashMailboxId != null) {
|
||||||
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
|
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
[email.id],
|
||||||
currentMailbox!.id,
|
currentMailbox.id,
|
||||||
trashMailboxId,
|
trashMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
EmailActionType.moveToTrash)
|
EmailActionType.moveToTrash)
|
||||||
@@ -523,11 +528,12 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
void moveToSpam(BuildContext context, PresentationEmail email) async {
|
void moveToSpam(BuildContext context, PresentationEmail email) async {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
final spamMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleSpam);
|
final spamMailboxId = mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleSpam);
|
||||||
|
final currentMailbox = getMailboxContain(email);
|
||||||
|
|
||||||
if (accountId != null && currentMailbox != null && spamMailboxId != null) {
|
if (accountId != null && currentMailbox != null && spamMailboxId != null) {
|
||||||
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
[email.id],
|
||||||
currentMailbox!.id,
|
currentMailbox.id,
|
||||||
spamMailboxId,
|
spamMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
EmailActionType.moveToSpam)
|
EmailActionType.moveToSpam)
|
||||||
@@ -558,7 +564,7 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
void markAsStarEmail(PresentationEmail presentationEmail, MarkStarAction markStarAction) async {
|
void markAsStarEmail(PresentationEmail presentationEmail, MarkStarAction markStarAction) async {
|
||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
final mailboxCurrent = mailboxDashBoardController.selectedMailbox.value;
|
final mailboxCurrent = getMailboxContain(presentationEmail);
|
||||||
if (accountId != null && mailboxCurrent != null) {
|
if (accountId != null && mailboxCurrent != null) {
|
||||||
consumeState(_markAsStarEmailInteractor.execute(accountId, presentationEmail.toEmail(), markStarAction));
|
consumeState(_markAsStarEmailInteractor.execute(accountId, presentationEmail.toEmail(), markStarAction));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,9 +127,9 @@ class EmailView extends GetWidget<EmailController> with NetworkConnectionMixin {
|
|||||||
padding: const EdgeInsets.only(top: 6),
|
padding: const EdgeInsets.only(top: 6),
|
||||||
child: AppBarMailWidgetBuilder(
|
child: AppBarMailWidgetBuilder(
|
||||||
controller.currentEmail,
|
controller.currentEmail,
|
||||||
currentMailbox: controller.mailboxDashBoardController.searchController.isSearchEmailRunning
|
currentMailbox: controller.currentEmail != null
|
||||||
? controller.currentEmail?.findMailboxContain(controller.mailboxDashBoardController.mapMailbox)
|
? controller.getMailboxContain(controller.currentEmail!)
|
||||||
: controller.currentMailbox,
|
: null,
|
||||||
isSearchIsRunning: controller.mailboxDashBoardController.searchController.isSearchEmailRunning,
|
isSearchIsRunning: controller.mailboxDashBoardController.searchController.isSearchEmailRunning,
|
||||||
onBackActionClick: () => controller.closeEmailView(context),
|
onBackActionClick: () => controller.closeEmailView(context),
|
||||||
onEmailActionClick: (email, action) =>
|
onEmailActionClick: (email, action) =>
|
||||||
@@ -600,12 +600,14 @@ class EmailView extends GetWidget<EmailController> with NetworkConnectionMixin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _markAsEmailSpamOrUnSpamAction(BuildContext context, PresentationEmail email) {
|
Widget _markAsEmailSpamOrUnSpamAction(BuildContext context, PresentationEmail email) {
|
||||||
|
final currentMailbox = controller.getMailboxContain(email);
|
||||||
|
|
||||||
return (EmailActionCupertinoActionSheetActionBuilder(
|
return (EmailActionCupertinoActionSheetActionBuilder(
|
||||||
const Key('mark_as_spam_or_un_spam_action'),
|
const Key('mark_as_spam_or_un_spam_action'),
|
||||||
SvgPicture.asset(
|
SvgPicture.asset(
|
||||||
controller.currentMailbox?.isSpam == true ? imagePaths.icNotSpam : imagePaths.icSpam,
|
currentMailbox?.isSpam == true ? imagePaths.icNotSpam : imagePaths.icSpam,
|
||||||
width: 28, height: 28, fit: BoxFit.fill, color: AppColor.colorTextButton),
|
width: 28, height: 28, fit: BoxFit.fill, color: AppColor.colorTextButton),
|
||||||
controller.currentMailbox?.isSpam == true
|
currentMailbox?.isSpam == true
|
||||||
? AppLocalizations.of(context).remove_from_spam
|
? AppLocalizations.of(context).remove_from_spam
|
||||||
: AppLocalizations.of(context).mark_as_spam,
|
: AppLocalizations.of(context).mark_as_spam,
|
||||||
email,
|
email,
|
||||||
@@ -616,7 +618,7 @@ class EmailView extends GetWidget<EmailController> with NetworkConnectionMixin {
|
|||||||
? const EdgeInsets.only(right: 12)
|
? const EdgeInsets.only(right: 12)
|
||||||
: EdgeInsets.zero)
|
: EdgeInsets.zero)
|
||||||
..onActionClick((email) => controller.handleEmailAction(context, email,
|
..onActionClick((email) => controller.handleEmailAction(context, email,
|
||||||
controller.currentMailbox?.isSpam == true ? EmailActionType.unSpam : EmailActionType.moveToSpam)))
|
currentMailbox?.isSpam == true ? EmailActionType.unSpam : EmailActionType.moveToSpam)))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user