tf-1946 add swipe to thread

tf-1946 add swipe to thread

tf-1946 fix duplicate import and change MarkReadAction

(cherry picked from commit 3fa17e200b972c3dd81ae297f19fd7b736f3845a)
This commit is contained in:
hieubt
2023-08-28 10:21:56 +07:00
committed by Dat Vu
parent 20c95caf0e
commit 852599856d
11 changed files with 160 additions and 27 deletions
@@ -24,6 +24,7 @@ import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
import 'package:tmail_ui_user/features/email/domain/model/mark_read_action.dart';
import 'package:tmail_ui_user/features/email/domain/state/delete_email_permanently_state.dart';
import 'package:tmail_ui_user/features/email/domain/state/delete_multiple_emails_permanently_state.dart';
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_state.dart';
@@ -882,10 +883,10 @@ class ThreadController extends BaseController with EmailActionController {
selectEmail(context, selectedEmail);
break;
case EmailActionType.markAsRead:
markAsEmailRead(selectedEmail, ReadActions.markAsRead);
markAsEmailRead(selectedEmail, ReadActions.markAsRead, MarkReadAction.tap);
break;
case EmailActionType.markAsUnread:
markAsEmailRead(selectedEmail, ReadActions.markAsUnread);
markAsEmailRead(selectedEmail, ReadActions.markAsUnread, MarkReadAction.tap);
break;
case EmailActionType.markAsStarred:
markAsStarEmail(selectedEmail, MarkStarAction.markStar);
@@ -1064,4 +1065,24 @@ class ThreadController extends BaseController with EmailActionController {
);
}
}
Future<bool> swipeEmailAction(BuildContext context, PresentationEmail email, DismissDirection direction) async {
if (direction == DismissDirection.startToEnd) {
ReadActions readActions = !email.hasRead ? ReadActions.markAsRead : ReadActions.markAsUnread;
markAsEmailRead(email, readActions, MarkReadAction.swipeOnThread);
}
return false;
}
DismissDirection getSwipeDirection (bool isWebDesktop, SelectMode selectMode) {
if (isWebDesktop) {
return DismissDirection.none;
}
if (selectMode == SelectMode.ACTIVE) {
return DismissDirection.none;
}
return DismissDirection.horizontal;
}
}