TF-2667 Add cancel button in progress saving message to drafts dialog

This commit is contained in:
dab246
2024-03-12 13:43:14 +07:00
committed by Dat H. Pham
parent f2b70aec48
commit c013e0306c
14 changed files with 297 additions and 94 deletions
@@ -116,23 +116,55 @@ class EmailDataSourceImpl extends EmailDataSource {
}
@override
Future<Email> saveEmailAsDrafts(Session session, AccountId accountId, Email email) {
Future<Email> saveEmailAsDrafts(
Session session,
AccountId accountId,
Email email,
{CancelToken? cancelToken}
) {
return Future.sync(() async {
return await emailAPI.saveEmailAsDrafts(session, accountId, email);
return await emailAPI.saveEmailAsDrafts(
session,
accountId,
email,
cancelToken: cancelToken
);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<bool> removeEmailDrafts(Session session, AccountId accountId, EmailId emailId) {
Future<bool> removeEmailDrafts(
Session session,
AccountId accountId,
EmailId emailId,
{CancelToken? cancelToken}
) {
return Future.sync(() async {
return await emailAPI.removeEmailDrafts(session, accountId, emailId);
return await emailAPI.removeEmailDrafts(
session,
accountId,
emailId,
cancelToken: cancelToken
);
}).catchError(_exceptionThrower.throwException);
}
@override
Future<Email> updateEmailDrafts(Session session, AccountId accountId, Email newEmail, EmailId oldEmailId) {
Future<Email> updateEmailDrafts(
Session session,
AccountId accountId,
Email newEmail,
EmailId oldEmailId,
{CancelToken? cancelToken}
) {
return Future.sync(() async {
return await emailAPI.updateEmailDrafts(session, accountId, newEmail, oldEmailId);
return await emailAPI.updateEmailDrafts(
session,
accountId,
newEmail,
oldEmailId,
cancelToken: cancelToken
);
}).catchError(_exceptionThrower.throwException);
}
@@ -129,12 +129,22 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
}
@override
Future<bool> removeEmailDrafts(Session session, AccountId accountId, EmailId emailId) {
Future<bool> removeEmailDrafts(
Session session,
AccountId accountId,
EmailId emailId,
{CancelToken? cancelToken}
) {
throw UnimplementedError();
}
@override
Future<Email> saveEmailAsDrafts(Session session, AccountId accountId, Email email) {
Future<Email> saveEmailAsDrafts(
Session session,
AccountId accountId,
Email email,
{CancelToken? cancelToken}
) {
throw UnimplementedError();
}
@@ -178,7 +188,13 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource {
}
@override
Future<Email> updateEmailDrafts(Session session, AccountId accountId, Email newEmail, EmailId oldEmailId) {
Future<Email> updateEmailDrafts(
Session session,
AccountId accountId,
Email newEmail,
EmailId oldEmailId,
{CancelToken? cancelToken}
) {
throw UnimplementedError();
}