TF-1604: Add requiredCapabilities support TeamMailbox for GetEmailMethod

(cherry picked from commit 3922303e63a8e910511361019a54ea13801e3f92)
This commit is contained in:
HuyNguyen
2023-03-21 23:29:45 +07:00
committed by Dat Vu
parent 890ca4c8cd
commit 8a28225e05
41 changed files with 516 additions and 197 deletions
@@ -1074,8 +1074,8 @@ class MailboxDashBoardController extends ReloadableController {
onCancelSelectionEmail?.call();
final trashMailboxId = mapDefaultMailboxIdByRole[PresentationMailbox.roleTrash];
if (accountId.value != null && trashMailboxId != null) {
consumeState(_emptyTrashFolderInteractor.execute(accountId.value!, trashMailboxId));
if (sessionCurrent != null && accountId.value != null && trashMailboxId != null) {
consumeState(_emptyTrashFolderInteractor.execute(sessionCurrent!, accountId.value!, trashMailboxId));
}
}
@@ -1285,7 +1285,10 @@ class MailboxDashBoardController extends ReloadableController {
searchController.addFilterToSuggestionForm(filter);
}
Future<List<PresentationEmail>> quickSearchEmails() => searchController.quickSearchEmails(accountId: accountId.value!);
Future<List<PresentationEmail>> quickSearchEmails() => searchController.quickSearchEmails(
session: sessionCurrent!,
accountId: accountId.value!
);
void addDownloadTask(DownloadTaskState task) {
downloadController.addDownloadTask(task);
@@ -1479,11 +1482,12 @@ class MailboxDashBoardController extends ReloadableController {
void _handleNotificationMessageFromEmailId(EmailId emailId, {bool onForeground = true}) {
final currentAccountId = accountId.value;
if (currentAccountId != null) {
final session = sessionCurrent;
if (currentAccountId != null && session != null) {
if (onForeground) {
_showWaitingView();
}
_getPresentationEmailFromEmailIdAction(emailId, currentAccountId);
_getPresentationEmailFromEmailIdAction(emailId, currentAccountId, session);
} else {
dispatchRoute(DashboardRoutes.thread);
}
@@ -1500,9 +1504,10 @@ class MailboxDashBoardController extends ReloadableController {
dispatchRoute(DashboardRoutes.thread);
}
void _getPresentationEmailFromEmailIdAction(EmailId emailId, AccountId accountId) {
void _getPresentationEmailFromEmailIdAction(EmailId emailId, AccountId accountId, Session session) {
log('MailboxDashBoardController:_getPresentationEmailFromEmailIdAction:emailId: $emailId');
consumeState(_getEmailByIdInteractor.execute(
session,
accountId,
emailId,
properties: ThreadConstants.propertiesDefault
@@ -9,6 +9,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
import 'package:jmap_dart_client/jmap/core/filter/filter_operator.dart';
import 'package:jmap_dart_client/jmap/core/filter/operator/logic_filter_operator.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
@@ -103,10 +104,12 @@ class SearchController extends BaseController with DateRangePickerMixin {
}
Future<List<PresentationEmail>> quickSearchEmails({
required Session session,
required AccountId accountId,
UserProfile? userProfile
}) async {
return await _quickSearchEmailInteractor.execute(
session,
accountId,
limit: UnsignedInt(5),
sort: <Comparator>{}..add(