TF-3912 Thread Detail Fix real time update

This commit is contained in:
DatDang
2025-07-29 16:43:03 +07:00
committed by Dat H. Pham
parent 4f0c783ea7
commit c7f5dc9e5e
12 changed files with 262 additions and 7 deletions
@@ -144,6 +144,8 @@ class GetEmailContentInteractor {
emailCurrent: emailCache.copyWith(
headers: detailedEmail.headers,
sMimeStatusHeader: detailedEmail.sMimeStatusHeader,
references: detailedEmail.references,
messageId: detailedEmail.messageId,
)
));
} catch (e) {
@@ -183,6 +185,8 @@ class GetEmailContentInteractor {
headers: detailedEmail.headers,
sMimeStatusHeader: detailedEmail.sMimeStatusHeader,
identityHeader: detailedEmail.identityHeader,
references: detailedEmail.references,
messageId: detailedEmail.messageId,
)
));
} catch (e) {
@@ -33,6 +33,7 @@ class SettingFirstLevelAppBar extends StatelessWidget {
PositionedDirectional(
start: 0,
child: TMailButtonWidget.fromIcon(
key: const ValueKey('settings_first_level_close_button'),
icon: imagePaths.icArrowBack,
tooltipMessage: appLocalizations.back,
backgroundColor: Colors.transparent,
@@ -72,6 +72,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
if (controller.manageAccountDashboardController.isServerSettingsCapabilitySupported) {
return Column(children: [
SettingFirstLevelTileBuilder(
key: const ValueKey('setting_preferences'),
AccountMenuItem.preferences.getName(AppLocalizations.of(context)),
AccountMenuItem.preferences.getIcon(controller.imagePaths),
subtitle: AppLocalizations.of(context).emailReadReceiptsSettingExplanation,
@@ -37,6 +37,7 @@ class UniversalSettingAppBar extends StatelessWidget {
PositionedDirectional(
start: 24,
child: TMailButtonWidget.fromIcon(
key: const ValueKey('settings_close_button'),
icon: imagePaths.icClose,
iconSize: 28,
padding: const EdgeInsets.all(5),
@@ -59,11 +59,17 @@ class SettingOptionItem extends StatelessWidget {
Row(
children: [
InkWell(
key: ValueKey(optionType.getTitle(appLocalizations)),
onTap: () => onTapSettingOptionAction(
optionType,
optionType.isEnabled(settingOption, localSettings),
),
child: SvgPicture.asset(
key: ValueKey(
optionType.isEnabled(settingOption, localSettings)
? 'setting_option_switch_on'
: 'setting_option_switch_off',
),
optionType.isEnabled(settingOption, localSettings)
? imagePaths.icSwitchOn
: imagePaths.icSwitchOff,
@@ -104,11 +104,14 @@ extension HandleRefreshThreadDetailAction on ThreadDetailController {
Email email,
ThreadId currentThreadId,
) {
return email.threadId == currentThreadId &&
sentMailboxId != null &&
!email.inSentMailbox(sentMailboxId!) &&
ownEmailAddress != null &&
!email.fromMe(ownEmailAddress!) &&
!email.recipientsHasMe(ownEmailAddress!);
if (email.threadId != currentThreadId) return false;
if (sentMailboxId != null && !email.inSentMailbox(sentMailboxId!)) {
return true;
}
return ownEmailAddress != null &&
(!email.fromMe(ownEmailAddress!) ||
!email.recipientsHasMe(ownEmailAddress!));
}
}