TF-3941 Thread Detail Thread level mark read/star, archive and spam
This commit is contained in:
@@ -207,9 +207,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
: _threadDetailController?.emailIdsPresentation[_currentEmailId];
|
||||
}
|
||||
|
||||
bool get isOnlyEmailInThread =>
|
||||
_threadDetailController?.emailIdsPresentation.length == 1;
|
||||
|
||||
bool get calendarEventProcessing => viewState.value.fold(
|
||||
(failure) => false,
|
||||
(success) => success is CalendarEventReplying);
|
||||
|
||||
@@ -252,40 +252,37 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
onEmailActionClick: (presentationEmail, actionType) => controller.handleEmailAction(context, presentationEmail, actionType),
|
||||
isInsideThreadDetailView: isInsideThreadDetailView,
|
||||
emailLoaded: controller.currentEmailLoaded.value,
|
||||
onMoreActionClick: controller.isOnlyEmailInThread
|
||||
? null
|
||||
: (presentationEmail, position) => controller.emailActionReactor.handleMoreEmailAction(
|
||||
mailboxContain: controller.getMailboxContain(presentationEmail),
|
||||
presentationEmail: presentationEmail,
|
||||
position: position,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
imagePaths: controller.imagePaths,
|
||||
username: controller.session?.username,
|
||||
handleEmailAction: (email, action) => controller.handleEmailAction(context, email, action),
|
||||
additionalActions: [
|
||||
EmailActionType.forward,
|
||||
EmailActionType.replyAll,
|
||||
EmailActionType.replyToList,
|
||||
EmailActionType.printAll,
|
||||
if (controller.responsiveUtils.isMobile(context))
|
||||
EmailActionType.moveToMailbox,
|
||||
if (!controller.responsiveUtils.isDesktop(context)) ...[
|
||||
EmailActionType.markAsStarred,
|
||||
EmailActionType.unMarkAsStarred,
|
||||
EmailActionType.moveToTrash,
|
||||
EmailActionType.deletePermanently,
|
||||
],
|
||||
],
|
||||
emailIsRead: presentationEmail.hasRead,
|
||||
openBottomSheetContextMenu: controller.mailboxDashBoardController.openBottomSheetContextMenu,
|
||||
openPopupMenu: controller.mailboxDashBoardController.openPopupMenu,
|
||||
),
|
||||
onMoreActionClick: (presentationEmail, position) => controller.emailActionReactor.handleMoreEmailAction(
|
||||
mailboxContain: controller.getMailboxContain(presentationEmail),
|
||||
presentationEmail: presentationEmail,
|
||||
position: position,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
imagePaths: controller.imagePaths,
|
||||
username: controller.session?.username,
|
||||
handleEmailAction: (email, action) => controller.handleEmailAction(context, email, action),
|
||||
additionalActions: [
|
||||
EmailActionType.forward,
|
||||
EmailActionType.replyAll,
|
||||
EmailActionType.replyToList,
|
||||
EmailActionType.printAll,
|
||||
if (controller.responsiveUtils.isMobile(context))
|
||||
EmailActionType.moveToMailbox,
|
||||
if (!controller.responsiveUtils.isDesktop(context)) ...[
|
||||
EmailActionType.markAsStarred,
|
||||
EmailActionType.unMarkAsStarred,
|
||||
EmailActionType.moveToTrash,
|
||||
EmailActionType.deletePermanently,
|
||||
],
|
||||
],
|
||||
emailIsRead: presentationEmail.hasRead,
|
||||
openBottomSheetContextMenu: controller.mailboxDashBoardController.openBottomSheetContextMenu,
|
||||
openPopupMenu: controller.mailboxDashBoardController.openPopupMenu,
|
||||
),
|
||||
onToggleThreadDetailCollapseExpand: onToggleThreadDetailCollapseExpand,
|
||||
onTapAvatarActionClick: onToggleThreadDetailCollapseExpand,
|
||||
mailboxContain: presentationEmail.findMailboxContain(
|
||||
controller.mailboxDashBoardController.mapMailboxById,
|
||||
),
|
||||
isOnlyEmailInThread: controller.isOnlyEmailInThread,
|
||||
)),
|
||||
if (!controller.responsiveUtils.isMobile(context))
|
||||
const SizedBox(height: 24),
|
||||
|
||||
@@ -23,6 +23,16 @@ extension EmailExtension on Email {
|
||||
}
|
||||
}
|
||||
|
||||
bool checkEmailValidForThreadDetail(
|
||||
MailboxId sentMailboxId,
|
||||
String ownEmailAddress) {
|
||||
return id != null && (
|
||||
!inSentMailbox(sentMailboxId)
|
||||
|| !fromMe(ownEmailAddress)
|
||||
|| !recipientsHasMe(ownEmailAddress)
|
||||
);
|
||||
}
|
||||
|
||||
bool inSentMailbox(MailboxId sentMailboxId) {
|
||||
return mailboxIds?[sentMailboxId] == true;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,6 @@ class EmailViewAppBarWidget extends StatelessWidget {
|
||||
final EdgeInsetsGeometry? iconPadding;
|
||||
final EdgeInsetsGeometry? iconMargin;
|
||||
final EdgeInsetsGeometry? padding;
|
||||
final bool isOnlyEmailInThread;
|
||||
|
||||
EmailViewAppBarWidget({
|
||||
Key? key,
|
||||
@@ -53,7 +52,6 @@ class EmailViewAppBarWidget extends StatelessWidget {
|
||||
this.iconPadding,
|
||||
this.iconMargin,
|
||||
this.padding,
|
||||
this.isOnlyEmailInThread = false,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
@@ -266,8 +264,7 @@ class EmailViewAppBarWidget extends StatelessWidget {
|
||||
_getMarkStarButton(appLocalizations),
|
||||
_getDeleteButton(appLocalizations),
|
||||
],
|
||||
if (!isOnlyEmailInThread)
|
||||
_getMoreButton(appLocalizations, isScreenWithShortestSide),
|
||||
_getMoreButton(appLocalizations, isScreenWithShortestSide),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,6 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
||||
final OnTapAvatarActionClick? onTapAvatarActionClick;
|
||||
final PresentationMailbox? mailboxContain;
|
||||
final bool showUnreadVisualization;
|
||||
final bool isOnlyEmailInThread;
|
||||
|
||||
const InformationSenderAndReceiverBuilder({
|
||||
Key? key,
|
||||
@@ -64,7 +63,6 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
||||
this.onTapAvatarActionClick,
|
||||
this.mailboxContain,
|
||||
this.showUnreadVisualization = false,
|
||||
this.isOnlyEmailInThread = false,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
@@ -201,7 +199,6 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
||||
iconPadding: const EdgeInsets.all(8),
|
||||
iconMargin: EdgeInsets.zero,
|
||||
padding: EdgeInsets.zero,
|
||||
isOnlyEmailInThread: isOnlyEmailInThread,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user