TF-3894 Fix blank email content when opening email

This commit is contained in:
dab246
2025-09-03 10:37:01 +07:00
committed by Dat H. Pham
parent 949c1a698c
commit 5a64ff7e8f
41 changed files with 309 additions and 169 deletions
@@ -31,6 +31,7 @@ import 'package:rxdart/transformers.dart';
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
import 'package:tmail_ui_user/features/base/mixin/contact_support_mixin.dart';
import 'package:tmail_ui_user/features/base/mixin/message_dialog_action_manager.dart';
import 'package:tmail_ui_user/features/base/mixin/own_email_address_mixin.dart';
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_method_exception.dart';
import 'package:tmail_ui_user/features/composer/domain/extensions/email_request_extension.dart';
@@ -126,7 +127,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/reopen_composer_cache_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/set_error_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_current_emails_flags_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_own_email_address_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/web_auth_redirect_processor_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/download/download_task_state.dart';
@@ -203,7 +203,7 @@ import 'package:server_settings/server_settings/tmail_server_settings_extension.
import 'package:uuid/uuid.dart';
class MailboxDashBoardController extends ReloadableController
with ContactSupportMixin {
with ContactSupportMixin, OwnEmailAddressMixin {
final RemoveEmailDraftsInteractor _removeEmailDraftsInteractor = Get.find<RemoveEmailDraftsInteractor>();
final EmailReceiveManager _emailReceiveManager = Get.find<EmailReceiveManager>();
@@ -285,9 +285,7 @@ class MailboxDashBoardController extends ReloadableController
final isDrawerOpened = RxBool(false);
final isContextMenuOpened = RxBool(false);
final isPopupMenuOpened = RxBool(false);
final ownEmailAddress = RxString('');
Session? sessionCurrent;
Map<Role, MailboxId> mapDefaultMailboxIdByRole = {};
Map<MailboxId, PresentationMailbox> mapMailboxById = {};
final emailsInCurrentMailbox = <PresentationEmail>[].obs;
@@ -1986,6 +1984,7 @@ class MailboxDashBoardController extends ReloadableController
return searchController.quickSearchEmails(
session: sessionCurrent!,
accountId: accountId.value!,
ownEmailAddress: ownEmailAddress.value,
query: query
);
} else {
@@ -3226,7 +3225,7 @@ class MailboxDashBoardController extends ReloadableController
void _handleGetAllIdentitiesFailure() {
_identities = null;
synchronizeOwnEmailAddress(sessionCurrent?.getUserDisplayName() ?? '');
updateOwnEmailAddressFromIdentities([]);
}
List<Identity> get listIdentities => _identities ?? [];
@@ -17,7 +17,6 @@ import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart';
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:model/email/presentation_email.dart';
import 'package:model/extensions/email_filter_condition_extension.dart';
import 'package:model/extensions/session_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/base/mixin/date_range_picker_mixin.dart';
@@ -91,6 +90,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
Future<List<PresentationEmail>> quickSearchEmails({
required Session session,
required AccountId accountId,
required String ownEmailAddress,
required String query,
}) async {
currentSearchText = query;
@@ -102,7 +102,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
EmailComparator(EmailComparatorProperty.receivedAt)
..setIsAscending(false)),
filter: _mappingToFilterOnSuggestionForm(
currentUserEmail: session.getOwnEmailAddressOrEmpty(),
currentUserEmail: ownEmailAddress,
query: query,
),
properties: EmailUtils.getPropertiesForEmailGetMethod(session, accountId),
@@ -127,7 +127,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
hasAttachment: listFilterOnSuggestionForm.contains(QuickSearchFilter.hasAttachment)
? true
: null,
from: listFilterOnSuggestionForm.contains(QuickSearchFilter.fromMe)
from: listFilterOnSuggestionForm.contains(QuickSearchFilter.fromMe) && currentUserEmail.isNotEmpty
? currentUserEmail
: null,
hasKeyword: listFilterOnSuggestionForm.contains(QuickSearchFilter.starred)
@@ -140,7 +140,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
: null;
}
void applyFilterSuggestionToSearchFilter(String? currentUserEmail) {
void applyFilterSuggestionToSearchFilter(String currentUserEmail) {
final receiveTime = listFilterOnSuggestionForm.contains(QuickSearchFilter.last7Days)
? EmailReceiveTimeType.last7Days
: EmailReceiveTimeType.allTime;
@@ -148,7 +148,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
final hasAttachment = listFilterOnSuggestionForm.contains(QuickSearchFilter.hasAttachment) ? true : false;
var listFromAddress = searchEmailFilter.value.from;
if (currentUserEmail != null) {
if (currentUserEmail.isNotEmpty) {
if (listFilterOnSuggestionForm.contains(QuickSearchFilter.fromMe)) {
listFromAddress.add(currentUserEmail);
} else {