TF-3472 Prefer at least two attachment for mobile
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/mail/mail_address.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get_utils/src/get_utils/get_utils.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
@@ -17,11 +19,14 @@ import 'package:model/email/attachment.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/download_attachment_for_web_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/get_html_content_from_attachment_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/email_unsubscribe.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/styles/attachment/attachment_item_widget_style.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/styles/email_attachments_styles.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
||||
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||
|
||||
class EmailUtils {
|
||||
EmailUtils._();
|
||||
|
||||
static Properties getPropertiesForEmailGetMethod(Session session, AccountId accountId) {
|
||||
if (CapabilityIdentifier.jamesCalendarEvent.isSupported(session, accountId)) {
|
||||
@@ -225,4 +230,38 @@ class EmailUtils {
|
||||
recipientRecord.ccMailAddresses.isNotEmpty ||
|
||||
recipientRecord.bccMailAddresses.isNotEmpty;
|
||||
}
|
||||
|
||||
static List<Attachment> getAttachmentDisplayed({
|
||||
required BuildContext context,
|
||||
required double maxWidth,
|
||||
required bool platformIsMobile,
|
||||
required List<Attachment> attachments,
|
||||
required ResponsiveUtils responsiveUtils,
|
||||
}) {
|
||||
if (attachments.isEmpty) return [];
|
||||
|
||||
final bool isMobile = responsiveUtils.isMobile(context);
|
||||
log('EmailUtils::getAttachmentDisplayed:isMobile = $isMobile:');
|
||||
|
||||
if (isMobile) {
|
||||
return attachments.length < 3 ? attachments : attachments.sublist(0, 2);
|
||||
}
|
||||
|
||||
final double maxWidthItem = AttachmentItemWidgetStyle.getMaxWidthItem(
|
||||
platformIsMobile: platformIsMobile,
|
||||
responsiveIsMobile: isMobile,
|
||||
responsiveIsTablet: responsiveUtils.isTablet(context),
|
||||
responsiveIsTabletLarge: responsiveUtils.isTabletLarge(context),
|
||||
);
|
||||
log('EmailUtils::getAttachmentDisplayed:maxWidthItem = $maxWidthItem:');
|
||||
|
||||
final int possibleDisplayedCount =
|
||||
((maxWidth - EmailAttachmentsStyles.buttonMoreMaxWidth) ~/ maxWidthItem)
|
||||
.clamp(0, attachments.length);
|
||||
log('EmailUtils::getAttachmentDisplayed:possibleDisplayedCount = $possibleDisplayedCount:');
|
||||
|
||||
return possibleDisplayedCount == 0
|
||||
? [attachments.first]
|
||||
: attachments.sublist(0, possibleDisplayedCount);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user