TF-78 Implement mark as unread when touch the "eye slash" icon on the top of screen EmailView
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/email/read_actions.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
|
||||
abstract class EmailDataSource {
|
||||
@@ -7,5 +8,5 @@ abstract class EmailDataSource {
|
||||
|
||||
Future<bool> sendEmail(AccountId accountId, EmailRequest emailRequest);
|
||||
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, bool unread);
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, ReadActions readActions);
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/email/read_actions.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
|
||||
@@ -29,9 +30,9 @@ class EmailDataSourceImpl extends EmailDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, bool unread) {
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, ReadActions readActions) {
|
||||
return Future.sync(() async {
|
||||
return await emailAPI.markAsRead(accountId, emailId, unread);
|
||||
return await emailAPI.markAsRead(accountId, emailId, readActions);
|
||||
}).catchError((error) {
|
||||
throw error;
|
||||
});
|
||||
|
||||
@@ -105,12 +105,10 @@ class EmailAPI {
|
||||
});
|
||||
}
|
||||
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, bool unread) async {
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, ReadActions readAction) async {
|
||||
final setEmailMethod = SetEmailMethod(accountId)
|
||||
..addUpdates({
|
||||
emailId.id: PatchObject({
|
||||
KeyWordIdentifier.emailSeen.generatePath() : unread ? null : true
|
||||
})
|
||||
emailId.id: KeyWordIdentifier.emailSeen.generateReadActionPath(readAction)
|
||||
});
|
||||
|
||||
final requestBuilder = JmapRequestBuilder(httpClient, ProcessingInvocation());
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/email/read_actions.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
@@ -22,7 +23,7 @@ class EmailRepositoryImpl extends EmailRepository {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, bool unread) {
|
||||
return emailDataSource.markAsRead(accountId, emailId, unread);
|
||||
Future<bool> markAsRead(AccountId accountId, EmailId emailId, ReadActions readAction) {
|
||||
return emailDataSource.markAsRead(accountId, emailId, readAction);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user