approve one executor
This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:core/presentation/state/failure.dart';
|
|
||||||
import 'package:core/presentation/state/success.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||||
@@ -13,7 +11,6 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
|||||||
import 'package:tmail_ui_user/features/thread/data/model/email_change_response.dart';
|
import 'package:tmail_ui_user/features/thread/data/model/email_change_response.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||||
import 'package:dartz/dartz.dart' as dartz;
|
|
||||||
|
|
||||||
abstract class ThreadDataSource {
|
abstract class ThreadDataSource {
|
||||||
Future<EmailsResponse> getAllEmail(
|
Future<EmailsResponse> getAllEmail(
|
||||||
@@ -42,7 +39,6 @@ abstract class ThreadDataSource {
|
|||||||
Future<List<EmailId>> emptyTrashFolder(
|
Future<List<EmailId>> emptyTrashFolder(
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
MailboxId mailboxId,
|
MailboxId mailboxId,
|
||||||
Future<void> Function(State state) updateState,
|
|
||||||
Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache,
|
Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:core/presentation/state/failure.dart';
|
|
||||||
import 'package:core/presentation/state/success.dart';
|
|
||||||
import 'package:dartz/dartz.dart' as dartz;
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||||
@@ -67,7 +64,11 @@ class LocalThreadDataSourceImpl extends ThreadDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<EmailId>> emptyTrashFolder(AccountId accountId, MailboxId mailboxId, Future<void> Function(State state) updateState, Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache) {
|
Future<List<EmailId>> emptyTrashFolder(
|
||||||
|
AccountId accountId,
|
||||||
|
MailboxId mailboxId,
|
||||||
|
Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache
|
||||||
|
) {
|
||||||
throw UnimplementedError();
|
throw UnimplementedError();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:core/presentation/state/failure.dart';
|
|
||||||
import 'package:core/presentation/state/success.dart';
|
|
||||||
import 'package:dartz/dartz.dart' as dartz;
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||||
@@ -78,12 +75,11 @@ class ThreadDataSourceImpl extends ThreadDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<EmailId>> emptyTrashFolder(AccountId accountId, MailboxId mailboxId, Future<void> Function(State state) updateState, Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache) {
|
Future<List<EmailId>> emptyTrashFolder(AccountId accountId, MailboxId mailboxId, Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache) {
|
||||||
return Future.sync(() async {
|
return Future.sync(() async {
|
||||||
return await _threadIsolateWorker.emptyTrashFolder(
|
return await _threadIsolateWorker.emptyTrashFolder(
|
||||||
accountId,
|
accountId,
|
||||||
mailboxId,
|
mailboxId,
|
||||||
updateState,
|
|
||||||
updateDestroyedEmailCache,
|
updateDestroyedEmailCache,
|
||||||
);
|
);
|
||||||
}).catchError((error) {
|
}).catchError((error) {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import 'package:core/utils/app_logger.dart';
|
|||||||
import 'package:core/utils/build_utils.dart';
|
import 'package:core/utils/build_utils.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
||||||
@@ -27,19 +26,15 @@ class ThreadIsolateWorker {
|
|||||||
Future<List<EmailId>> emptyTrashFolder(
|
Future<List<EmailId>> emptyTrashFolder(
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
MailboxId mailboxId,
|
MailboxId mailboxId,
|
||||||
Future<void> Function(State state) updateState,
|
|
||||||
Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache,
|
Future<void> Function(List<EmailId>? newDestroyed) updateDestroyedEmailCache,
|
||||||
) async {
|
) async {
|
||||||
if (BuildUtils.isWeb) {
|
if (BuildUtils.isWeb) {
|
||||||
return _emptyTrashFolderOnWeb(accountId, mailboxId, updateState, updateDestroyedEmailCache);
|
return _emptyTrashFolderOnWeb(accountId, mailboxId, updateDestroyedEmailCache);
|
||||||
} else {
|
} else {
|
||||||
final result = await _isolateExecutor.execute(
|
final result = await _isolateExecutor.execute(
|
||||||
arg1: EmptyTrashFolderArguments(_threadAPI, _emailAPI, accountId, mailboxId),
|
arg1: EmptyTrashFolderArguments(_threadAPI, _emailAPI, accountId, mailboxId),
|
||||||
fun1: _emptyTrashFolderAction,
|
fun1: _emptyTrashFolderAction,
|
||||||
notification: (value) {
|
notification: (value) {
|
||||||
if(value is State) {
|
|
||||||
updateState.call(value);
|
|
||||||
}
|
|
||||||
if (value is List<EmailId>) {
|
if (value is List<EmailId>) {
|
||||||
updateDestroyedEmailCache.call(value);
|
updateDestroyedEmailCache.call(value);
|
||||||
log('ThreadIsolateWorker::emptyTrashFolder(): onUpdateProgress: PERCENT ${value.length}');
|
log('ThreadIsolateWorker::emptyTrashFolder(): onUpdateProgress: PERCENT ${value.length}');
|
||||||
@@ -64,10 +59,6 @@ class ThreadIsolateWorker {
|
|||||||
filter: EmailFilterCondition(inMailbox: args.trashMailboxId, before: lastEmail?.receivedAt),
|
filter: EmailFilterCondition(inMailbox: args.trashMailboxId, before: lastEmail?.receivedAt),
|
||||||
properties: Properties({EmailProperty.id}));
|
properties: Properties({EmailProperty.id}));
|
||||||
|
|
||||||
if (emailsResponse.state != null) {
|
|
||||||
sendPort.send(emailsResponse.state!);
|
|
||||||
}
|
|
||||||
|
|
||||||
var newEmailList = emailsResponse.emailList ?? <Email>[];
|
var newEmailList = emailsResponse.emailList ?? <Email>[];
|
||||||
if (lastEmail != null) {
|
if (lastEmail != null) {
|
||||||
newEmailList = newEmailList.where((email) => email.id != lastEmail!.id).toList();
|
newEmailList = newEmailList.where((email) => email.id != lastEmail!.id).toList();
|
||||||
@@ -102,7 +93,6 @@ class ThreadIsolateWorker {
|
|||||||
Future<List<EmailId>> _emptyTrashFolderOnWeb(
|
Future<List<EmailId>> _emptyTrashFolderOnWeb(
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
MailboxId trashMailboxId,
|
MailboxId trashMailboxId,
|
||||||
Future<void> Function(State state) updateState,
|
|
||||||
Future<void> Function(List<EmailId> newDestroyed) updateDestroyedEmailCache,
|
Future<void> Function(List<EmailId> newDestroyed) updateDestroyedEmailCache,
|
||||||
) async {
|
) async {
|
||||||
List<EmailId> emailListCompleted = List.empty(growable: true);
|
List<EmailId> emailListCompleted = List.empty(growable: true);
|
||||||
@@ -119,10 +109,6 @@ class ThreadIsolateWorker {
|
|||||||
filter: EmailFilterCondition(inMailbox: trashMailboxId, before: lastEmail?.receivedAt),
|
filter: EmailFilterCondition(inMailbox: trashMailboxId, before: lastEmail?.receivedAt),
|
||||||
properties: Properties({EmailProperty.id}));
|
properties: Properties({EmailProperty.id}));
|
||||||
|
|
||||||
if (emailsResponse.state != null) {
|
|
||||||
await updateState.call(emailsResponse.state!);
|
|
||||||
}
|
|
||||||
|
|
||||||
var newEmailList = emailsResponse.emailList ?? <Email>[];
|
var newEmailList = emailsResponse.emailList ?? <Email>[];
|
||||||
if (lastEmail != null) {
|
if (lastEmail != null) {
|
||||||
newEmailList = newEmailList.where((email) => email.id != lastEmail!.id).toList();
|
newEmailList = newEmailList.where((email) => email.id != lastEmail!.id).toList();
|
||||||
|
|||||||
@@ -9,9 +9,6 @@ import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
import 'package:jmap_dart_client/jmap/core/state.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
import 'package:tmail_ui_user/features/email/data/datasource/email_datasource.dart';
|
||||||
@@ -299,46 +296,13 @@ class ThreadRepositoryImpl extends ThreadRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<bool> emptyTrashFolder(AccountId accountId, MailboxId trashMailboxId) async {
|
Future<List<EmailId>> emptyTrashFolder(AccountId accountId, MailboxId trashMailboxId) async {
|
||||||
var finalResult = true;
|
return mapDataSource[DataSourceType.network]!.emptyTrashFolder(
|
||||||
var hasEmails = true;
|
accountId,
|
||||||
|
trashMailboxId,
|
||||||
while (hasEmails) {
|
(listEmailIdDeleted) async {
|
||||||
Email? lastEmail;
|
await _updateEmailCache(newDestroyed: listEmailIdDeleted);
|
||||||
|
},
|
||||||
final emailsResponse = await mapDataSource[DataSourceType.network]!.getAllEmail(
|
);
|
||||||
accountId,
|
|
||||||
sort: <Comparator>{}
|
|
||||||
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
|
||||||
..setIsAscending(false)),
|
|
||||||
filter: EmailFilterCondition(inMailbox: trashMailboxId, before: lastEmail?.receivedAt),
|
|
||||||
properties: Properties({EmailProperty.id}));
|
|
||||||
|
|
||||||
var newEmailList = emailsResponse.emailList ?? <Email>[];
|
|
||||||
if (lastEmail != null) {
|
|
||||||
newEmailList = newEmailList.where((email) => email.id != lastEmail!.id).toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
log('ThreadRepositoryImpl::emptyTrashFolder(): ${newEmailList.length}');
|
|
||||||
|
|
||||||
if (newEmailList.isNotEmpty == true) {
|
|
||||||
lastEmail = newEmailList.last;
|
|
||||||
hasEmails = true;
|
|
||||||
final emailIds = newEmailList.map((email) => email.id).toList();
|
|
||||||
|
|
||||||
final listEmailIdDeleted = await emailDataSource.deleteMultipleEmailsPermanently(accountId, emailIds);
|
|
||||||
|
|
||||||
if (listEmailIdDeleted.isNotEmpty && listEmailIdDeleted.length == emailIds.length) {
|
|
||||||
await _updateEmailCache(newDestroyed: listEmailIdDeleted);
|
|
||||||
finalResult = true;
|
|
||||||
} else {
|
|
||||||
finalResult = false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
hasEmails = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return finalResult;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@ class EmptyTrashFolderInteractor {
|
|||||||
final currentEmailState = listState.last;
|
final currentEmailState = listState.last;
|
||||||
|
|
||||||
final result = await threadRepository.emptyTrashFolder(accountId, trashMailboxId);
|
final result = await threadRepository.emptyTrashFolder(accountId, trashMailboxId);
|
||||||
if (result) {
|
if (result.isNotEmpty) {
|
||||||
yield Right<Failure, Success>(EmptyTrashFolderSuccess(
|
yield Right<Failure, Success>(EmptyTrashFolderSuccess(
|
||||||
currentMailboxState: currentMailboxState,
|
currentMailboxState: currentMailboxState,
|
||||||
currentEmailState: currentEmailState,
|
currentEmailState: currentEmailState,
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import 'package:tmail_ui_user/features/thread/data/datasource_impl/local_thread_
|
|||||||
import 'package:tmail_ui_user/features/thread/data/datasource_impl/thread_datasource_impl.dart';
|
import 'package:tmail_ui_user/features/thread/data/datasource_impl/thread_datasource_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart';
|
import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
|
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread/data/network/thread_isolate_worker.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/data/repository/thread_repository_impl.dart';
|
import 'package:tmail_ui_user/features/thread/data/repository/thread_repository_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart';
|
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/usecases/empty_trash_folder_interactor.dart';
|
import 'package:tmail_ui_user/features/thread/domain/usecases/empty_trash_folder_interactor.dart';
|
||||||
@@ -76,7 +77,7 @@ class ThreadBindings extends BaseBindings {
|
|||||||
void bindingsDataSourceImpl() {
|
void bindingsDataSourceImpl() {
|
||||||
Get.lazyPut(() => MailboxDataSourceImpl(Get.find<MailboxAPI>(), Get.find<MailboxIsolateWorker>()));
|
Get.lazyPut(() => MailboxDataSourceImpl(Get.find<MailboxAPI>(), Get.find<MailboxIsolateWorker>()));
|
||||||
Get.lazyPut(() => MailboxCacheDataSourceImpl(Get.find<MailboxCacheManager>()));
|
Get.lazyPut(() => MailboxCacheDataSourceImpl(Get.find<MailboxCacheManager>()));
|
||||||
Get.lazyPut(() => ThreadDataSourceImpl(Get.find<ThreadAPI>()));
|
Get.lazyPut(() => ThreadDataSourceImpl(Get.find<ThreadAPI>(), Get.find<ThreadIsolateWorker>()));
|
||||||
Get.lazyPut(() => LocalThreadDataSourceImpl(Get.find<EmailCacheManager>()));
|
Get.lazyPut(() => LocalThreadDataSourceImpl(Get.find<EmailCacheManager>()));
|
||||||
Get.lazyPut(() => StateDataSourceImpl(Get.find<StateCacheClient>()));
|
Get.lazyPut(() => StateDataSourceImpl(Get.find<StateCacheClient>()));
|
||||||
Get.lazyPut(() => EmailDataSourceImpl(Get.find<EmailAPI>()));
|
Get.lazyPut(() => EmailDataSourceImpl(Get.find<EmailAPI>()));
|
||||||
|
|||||||
@@ -71,8 +71,6 @@ import 'package:tmail_ui_user/features/thread/presentation/model/search_status.d
|
|||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
import 'package:tmail_ui_user/main/utils/binding_tag.dart';
|
|
||||||
import 'package:worker_manager/worker_manager.dart';
|
|
||||||
|
|
||||||
class ThreadController extends BaseController {
|
class ThreadController extends BaseController {
|
||||||
|
|
||||||
@@ -80,7 +78,6 @@ class ThreadController extends BaseController {
|
|||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
final _appToast = Get.find<AppToast>();
|
final _appToast = Get.find<AppToast>();
|
||||||
final Executor _isolateExecutor = Get.find<Executor>(tag: BindingTag.threadExecutor);
|
|
||||||
|
|
||||||
final GetEmailsInMailboxInteractor _getEmailsInMailboxInteractor;
|
final GetEmailsInMailboxInteractor _getEmailsInMailboxInteractor;
|
||||||
final MarkAsMultipleEmailReadInteractor _markAsMultipleEmailReadInteractor;
|
final MarkAsMultipleEmailReadInteractor _markAsMultipleEmailReadInteractor;
|
||||||
@@ -144,7 +141,6 @@ class ThreadController extends BaseController {
|
|||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
_initWorker();
|
_initWorker();
|
||||||
_initializeIsolateExecutor();
|
|
||||||
super.onInit();
|
super.onInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +153,6 @@ class ThreadController extends BaseController {
|
|||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
listEmailController.dispose();
|
listEmailController.dispose();
|
||||||
_isolateExecutor.dispose();
|
|
||||||
_clearWorker();
|
_clearWorker();
|
||||||
super.onClose();
|
super.onClose();
|
||||||
}
|
}
|
||||||
@@ -320,14 +315,6 @@ class ThreadController extends BaseController {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initializeIsolateExecutor() async {
|
|
||||||
try {
|
|
||||||
await _isolateExecutor.warmUp();
|
|
||||||
} catch(e) {
|
|
||||||
log('ThreadController::_initializeIsolateExecutor(): exception: $e');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _clearWorker() {
|
void _clearWorker() {
|
||||||
mailboxWorker.call();
|
mailboxWorker.call();
|
||||||
dashboardActionWorker.call();
|
dashboardActionWorker.call();
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import 'package:tmail_ui_user/features/manage_account/data/network/manage_accoun
|
|||||||
import 'package:tmail_ui_user/features/session/data/network/session_api.dart';
|
import 'package:tmail_ui_user/features/session/data/network/session_api.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
|
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/data/network/thread_isolate_worker.dart';
|
import 'package:tmail_ui_user/features/thread/data/network/thread_isolate_worker.dart';
|
||||||
import 'package:tmail_ui_user/main/utils/binding_tag.dart';
|
|
||||||
import 'package:worker_manager/worker_manager.dart';
|
import 'package:worker_manager/worker_manager.dart';
|
||||||
|
|
||||||
class NetworkBindings extends Bindings {
|
class NetworkBindings extends Bindings {
|
||||||
@@ -93,12 +92,11 @@ class NetworkBindings extends Bindings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _bindingIsolateWorker() {
|
void _bindingIsolateWorker() {
|
||||||
Get.put(Executor(), tag: BindingTag.threadExecutor);
|
Get.put(Executor());
|
||||||
Get.put(ThreadIsolateWorker(
|
Get.put(ThreadIsolateWorker(
|
||||||
Get.find<ThreadAPI>(),
|
Get.find<ThreadAPI>(),
|
||||||
Get.find<EmailAPI>(),
|
Get.find<EmailAPI>(),
|
||||||
Get.find<Executor>(tag: BindingTag.threadExecutor)));
|
Get.find<Executor>()));
|
||||||
Get.put(Executor());
|
|
||||||
Get.put(MailboxIsolateWorker(
|
Get.put(MailboxIsolateWorker(
|
||||||
Get.find<ThreadAPI>(),
|
Get.find<ThreadAPI>(),
|
||||||
Get.find<EmailAPI>(),
|
Get.find<EmailAPI>(),
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
class BindingTag {
|
|
||||||
static const String threadExecutor = '#ThreadExecutor' ;
|
|
||||||
}
|
|
||||||
+7
-4
@@ -1,7 +1,8 @@
|
|||||||
// Mocks generated by Mockito 5.0.17 from annotations
|
// Mocks generated by Mockito 5.2.0 from annotations
|
||||||
// in tmail_ui_user/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.dart.
|
// in tmail_ui_user/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.dart.
|
||||||
// Do not manually edit this file.
|
// Do not manually edit this file.
|
||||||
|
|
||||||
|
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||||
import 'dart:async' as _i3;
|
import 'dart:async' as _i3;
|
||||||
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
||||||
@@ -24,6 +25,7 @@ import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dar
|
|||||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
||||||
as _i2;
|
as _i2;
|
||||||
|
|
||||||
|
// ignore_for_file: type=lint
|
||||||
// ignore_for_file: avoid_redundant_argument_values
|
// ignore_for_file: avoid_redundant_argument_values
|
||||||
// ignore_for_file: avoid_setters_without_getters
|
// ignore_for_file: avoid_setters_without_getters
|
||||||
// ignore_for_file: comment_references
|
// ignore_for_file: comment_references
|
||||||
@@ -105,9 +107,10 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
returnValue: Future<List<_i14.Email>>.value(<_i14.Email>[]))
|
returnValue: Future<List<_i14.Email>>.value(<_i14.Email>[]))
|
||||||
as _i3.Future<List<_i14.Email>>);
|
as _i3.Future<List<_i14.Email>>);
|
||||||
@override
|
@override
|
||||||
_i3.Future<bool> emptyTrashFolder(
|
_i3.Future<List<_i14.EmailId>> emptyTrashFolder(
|
||||||
_i5.AccountId? accountId, _i11.MailboxId? trashMailboxId) =>
|
_i5.AccountId? accountId, _i11.MailboxId? trashMailboxId) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
||||||
returnValue: Future<bool>.value(false)) as _i3.Future<bool>);
|
returnValue: Future<List<_i14.EmailId>>.value(<_i14.EmailId>[]))
|
||||||
|
as _i3.Future<List<_i14.EmailId>>);
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-4
@@ -1,7 +1,8 @@
|
|||||||
// Mocks generated by Mockito 5.0.17 from annotations
|
// Mocks generated by Mockito 5.2.0 from annotations
|
||||||
// in tmail_ui_user/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.dart.
|
// in tmail_ui_user/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.dart.
|
||||||
// Do not manually edit this file.
|
// Do not manually edit this file.
|
||||||
|
|
||||||
|
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||||
import 'dart:async' as _i3;
|
import 'dart:async' as _i3;
|
||||||
|
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
||||||
@@ -24,6 +25,7 @@ import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dar
|
|||||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
||||||
as _i2;
|
as _i2;
|
||||||
|
|
||||||
|
// ignore_for_file: type=lint
|
||||||
// ignore_for_file: avoid_redundant_argument_values
|
// ignore_for_file: avoid_redundant_argument_values
|
||||||
// ignore_for_file: avoid_setters_without_getters
|
// ignore_for_file: avoid_setters_without_getters
|
||||||
// ignore_for_file: comment_references
|
// ignore_for_file: comment_references
|
||||||
@@ -105,9 +107,10 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
returnValue: Future<List<_i14.Email>>.value(<_i14.Email>[]))
|
returnValue: Future<List<_i14.Email>>.value(<_i14.Email>[]))
|
||||||
as _i3.Future<List<_i14.Email>>);
|
as _i3.Future<List<_i14.Email>>);
|
||||||
@override
|
@override
|
||||||
_i3.Future<bool> emptyTrashFolder(
|
_i3.Future<List<_i14.EmailId>> emptyTrashFolder(
|
||||||
_i5.AccountId? accountId, _i11.MailboxId? trashMailboxId) =>
|
_i5.AccountId? accountId, _i11.MailboxId? trashMailboxId) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
||||||
returnValue: Future<bool>.value(false)) as _i3.Future<bool>);
|
returnValue: Future<List<_i14.EmailId>>.value(<_i14.EmailId>[]))
|
||||||
|
as _i3.Future<List<_i14.EmailId>>);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user