TF-495 Apply isolate for LoadMore emails
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
|
import 'package:flutter/foundation.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';
|
||||||
@@ -20,6 +21,7 @@ import 'package:tmail_ui_user/features/thread/data/datasource/thread_datasource.
|
|||||||
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/constants/thread_constants.dart';
|
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.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/get_email_request.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';
|
||||||
|
|
||||||
class ThreadRepositoryImpl extends ThreadRepository {
|
class ThreadRepositoryImpl extends ThreadRepository {
|
||||||
@@ -240,34 +242,29 @@ class ThreadRepositoryImpl extends ThreadRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Stream<EmailsResponse> loadMoreEmails(
|
Stream<EmailsResponse> loadMoreEmails(GetEmailRequest getEmailRequest) async* {
|
||||||
AccountId accountId,
|
final response = await compute(_getAllEmailsWithoutLastEmailId, getEmailRequest);
|
||||||
{
|
await _updateEmailCache(newCreated: response.emailList);
|
||||||
int? position,
|
yield response;
|
||||||
UnsignedInt? limit,
|
}
|
||||||
Set<Comparator>? sort,
|
|
||||||
Filter? filter,
|
|
||||||
Properties? properties,
|
|
||||||
EmailId? lastEmailId,
|
|
||||||
}
|
|
||||||
) async* {
|
|
||||||
log('ThreadRepositoryImpl::loadMoreEmails()');
|
|
||||||
final emailResponse = await mapDataSource[DataSourceType.network]!.getAllEmail(
|
|
||||||
accountId,
|
|
||||||
limit: limit,
|
|
||||||
sort: sort,
|
|
||||||
filter: filter,
|
|
||||||
properties: properties);
|
|
||||||
|
|
||||||
final newEmailList = emailResponse.emailList != null && emailResponse.emailList!.isNotEmpty
|
Future<EmailsResponse> _getAllEmailsWithoutLastEmailId(GetEmailRequest emailRequest) async {
|
||||||
? emailResponse.emailList!.where((email) => email.id != lastEmailId).toList()
|
final emailResponse = await mapDataSource[DataSourceType.network]!
|
||||||
: <Email>[];
|
.getAllEmail(
|
||||||
|
emailRequest.accountId,
|
||||||
|
limit: emailRequest.limit,
|
||||||
|
sort: emailRequest.sort,
|
||||||
|
filter: emailRequest.filter,
|
||||||
|
properties: emailRequest.properties)
|
||||||
|
.then((response) {
|
||||||
|
var listEmails = response.emailList;
|
||||||
|
if (listEmails != null && listEmails.isNotEmpty) {
|
||||||
|
listEmails = listEmails.where((email) => email.id != emailRequest.lastEmailId).toList();
|
||||||
|
}
|
||||||
|
return EmailsResponse(emailList: listEmails, state: response.state);
|
||||||
|
});
|
||||||
|
|
||||||
if (newEmailList.isNotEmpty) {
|
return emailResponse;
|
||||||
await _updateEmailCache(newCreated: newEmailList);
|
|
||||||
}
|
|
||||||
|
|
||||||
yield EmailsResponse(emailList: newEmailList, state: emailResponse.state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email.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/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/get_email_request.dart';
|
||||||
|
|
||||||
abstract class ThreadRepository {
|
abstract class ThreadRepository {
|
||||||
Stream<EmailsResponse> getAllEmail(
|
Stream<EmailsResponse> getAllEmail(
|
||||||
@@ -44,16 +45,7 @@ abstract class ThreadRepository {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
Stream<EmailsResponse> loadMoreEmails(
|
Stream<EmailsResponse> loadMoreEmails(GetEmailRequest emailRequest);
|
||||||
AccountId accountId,
|
|
||||||
{
|
|
||||||
UnsignedInt? limit,
|
|
||||||
Set<Comparator>? sort,
|
|
||||||
Filter? filter,
|
|
||||||
Properties? properties,
|
|
||||||
EmailId? lastEmailId,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
Future<List<Email>> searchEmails(
|
Future<List<Email>> searchEmails(
|
||||||
AccountId accountId,
|
AccountId accountId,
|
||||||
|
|||||||
@@ -1,12 +1,7 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.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/properties/properties.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.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/get_email_request.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:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/load_more_emails_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/load_more_emails_state.dart';
|
||||||
@@ -16,28 +11,11 @@ class LoadMoreEmailsInMailboxInteractor {
|
|||||||
|
|
||||||
LoadMoreEmailsInMailboxInteractor(this.threadRepository);
|
LoadMoreEmailsInMailboxInteractor(this.threadRepository);
|
||||||
|
|
||||||
Stream<Either<Failure, Success>> execute(
|
Stream<Either<Failure, Success>> execute(GetEmailRequest emailRequest) async* {
|
||||||
AccountId accountId,
|
|
||||||
{
|
|
||||||
UnsignedInt? limit,
|
|
||||||
Set<Comparator>? sort,
|
|
||||||
Filter? filter,
|
|
||||||
Properties? properties,
|
|
||||||
EmailId? lastEmailId,
|
|
||||||
}
|
|
||||||
) async* {
|
|
||||||
try {
|
try {
|
||||||
yield Right<Failure, Success>(LoadingMoreState());
|
yield Right<Failure, Success>(LoadingMoreState());
|
||||||
|
|
||||||
yield* threadRepository
|
yield* threadRepository.loadMoreEmails(emailRequest).map(_toGetEmailState);
|
||||||
.loadMoreEmails(
|
|
||||||
accountId,
|
|
||||||
limit: limit,
|
|
||||||
sort: sort,
|
|
||||||
filter: filter,
|
|
||||||
properties: properties,
|
|
||||||
lastEmailId: lastEmailId)
|
|
||||||
.map(_toGetEmailState);
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
yield Left(LoadMoreEmailsFailure(e));
|
yield Left(LoadMoreEmailsFailure(e));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_ema
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/empty_trash_folder_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/empty_trash_folder_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/get_all_email_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/get_all_email_state.dart';
|
||||||
@@ -382,18 +383,21 @@ class ThreadController extends BaseController {
|
|||||||
void loadMoreEmails() {
|
void loadMoreEmails() {
|
||||||
if (canLoadMore && _accountId != null) {
|
if (canLoadMore && _accountId != null) {
|
||||||
log('ThreadController::loadMoreEmails(): latest: ${emailList.last.receivedAt}');
|
log('ThreadController::loadMoreEmails(): latest: ${emailList.last.receivedAt}');
|
||||||
|
bench.start('loadMoreEmails');
|
||||||
consumeState(_loadMoreEmailsInMailboxInteractor.execute(
|
consumeState(_loadMoreEmailsInMailboxInteractor.execute(
|
||||||
_accountId!,
|
GetEmailRequest(
|
||||||
limit: ThreadConstants.defaultLimit,
|
_accountId!,
|
||||||
sort: _sortOrder,
|
limit: ThreadConstants.defaultLimit,
|
||||||
filter: _getFilterCondition(isLoadMore: true),
|
sort: _sortOrder,
|
||||||
properties: ThreadConstants.propertiesDefault,
|
filter: _getFilterCondition(isLoadMore: true),
|
||||||
lastEmailId: emailList.last.id
|
properties: ThreadConstants.propertiesDefault,
|
||||||
|
lastEmailId: emailList.last.id)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _loadMoreEmailsSuccess(LoadMoreEmailsSuccess success) {
|
void _loadMoreEmailsSuccess(LoadMoreEmailsSuccess success) {
|
||||||
|
bench.end('loadMoreEmails');
|
||||||
log('ThreadController::_loadMoreEmailsSuccess(): [BEFORE] totalEmailList = ${emailList.length}');
|
log('ThreadController::_loadMoreEmailsSuccess(): [BEFORE] totalEmailList = ${emailList.length}');
|
||||||
if (success.emailList.isNotEmpty) {
|
if (success.emailList.isNotEmpty) {
|
||||||
log('ThreadController::_loadMoreEmailsSuccess(): add success: ${success.emailList.length}');
|
log('ThreadController::_loadMoreEmailsSuccess(): add success: ${success.emailList.length}');
|
||||||
|
|||||||
+32
-18
@@ -5,7 +5,7 @@
|
|||||||
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;
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i12;
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
||||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
||||||
@@ -16,6 +16,8 @@ import 'package:mockito/mockito.dart' as _i1;
|
|||||||
import 'package:model/model.dart' as _i8;
|
import 'package:model/model.dart' as _i8;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
||||||
as _i4;
|
as _i4;
|
||||||
|
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
||||||
|
as _i12;
|
||||||
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;
|
||||||
|
|
||||||
@@ -56,6 +58,25 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
|
_i3.Stream<_i4.EmailsResponse> refreshAll(_i5.AccountId? accountId,
|
||||||
|
{_i6.UnsignedInt? limit,
|
||||||
|
Set<_i7.Comparator>? sort,
|
||||||
|
_i8.EmailFilter? emailFilter,
|
||||||
|
_i9.Properties? propertiesCreated,
|
||||||
|
_i9.Properties? propertiesUpdated}) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(#refreshAll, [
|
||||||
|
accountId
|
||||||
|
], {
|
||||||
|
#limit: limit,
|
||||||
|
#sort: sort,
|
||||||
|
#emailFilter: emailFilter,
|
||||||
|
#propertiesCreated: propertiesCreated,
|
||||||
|
#propertiesUpdated: propertiesUpdated
|
||||||
|
}),
|
||||||
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
||||||
_i5.AccountId? accountId, _i10.State? currentState,
|
_i5.AccountId? accountId, _i10.State? currentState,
|
||||||
{Set<_i7.Comparator>? sort,
|
{Set<_i7.Comparator>? sort,
|
||||||
@@ -77,29 +98,16 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(_i5.AccountId? accountId,
|
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(
|
||||||
{_i6.UnsignedInt? limit,
|
_i12.GetEmailRequest? emailRequest) =>
|
||||||
Set<_i7.Comparator>? sort,
|
(super.noSuchMethod(Invocation.method(#loadMoreEmails, [emailRequest]),
|
||||||
_i12.Filter? filter,
|
|
||||||
_i9.Properties? properties,
|
|
||||||
_i13.EmailId? lastEmailId}) =>
|
|
||||||
(super.noSuchMethod(
|
|
||||||
Invocation.method(#loadMoreEmails, [
|
|
||||||
accountId
|
|
||||||
], {
|
|
||||||
#limit: limit,
|
|
||||||
#sort: sort,
|
|
||||||
#filter: filter,
|
|
||||||
#properties: properties,
|
|
||||||
#lastEmailId: lastEmailId
|
|
||||||
}),
|
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Future<List<_i13.Email>> searchEmails(_i5.AccountId? accountId,
|
_i3.Future<List<_i13.Email>> searchEmails(_i5.AccountId? accountId,
|
||||||
{_i6.UnsignedInt? limit,
|
{_i6.UnsignedInt? limit,
|
||||||
Set<_i7.Comparator>? sort,
|
Set<_i7.Comparator>? sort,
|
||||||
_i12.Filter? filter,
|
_i14.Filter? filter,
|
||||||
_i9.Properties? properties}) =>
|
_i9.Properties? properties}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#searchEmails, [
|
Invocation.method(#searchEmails, [
|
||||||
@@ -112,4 +120,10 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
}),
|
}),
|
||||||
returnValue: Future<List<_i13.Email>>.value(<_i13.Email>[]))
|
returnValue: Future<List<_i13.Email>>.value(<_i13.Email>[]))
|
||||||
as _i3.Future<List<_i13.Email>>);
|
as _i3.Future<List<_i13.Email>>);
|
||||||
|
@override
|
||||||
|
_i3.Future<bool> emptyTrashFolder(
|
||||||
|
_i5.AccountId? accountId, _i11.MailboxId? trashMailboxId) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
||||||
|
returnValue: Future<bool>.value(false)) as _i3.Future<bool>);
|
||||||
}
|
}
|
||||||
|
|||||||
+32
-18
@@ -5,7 +5,7 @@
|
|||||||
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;
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i12;
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
||||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
||||||
@@ -16,6 +16,8 @@ import 'package:mockito/mockito.dart' as _i1;
|
|||||||
import 'package:model/model.dart' as _i8;
|
import 'package:model/model.dart' as _i8;
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
||||||
as _i4;
|
as _i4;
|
||||||
|
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
||||||
|
as _i12;
|
||||||
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;
|
||||||
|
|
||||||
@@ -56,6 +58,25 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
|
_i3.Stream<_i4.EmailsResponse> refreshAll(_i5.AccountId? accountId,
|
||||||
|
{_i6.UnsignedInt? limit,
|
||||||
|
Set<_i7.Comparator>? sort,
|
||||||
|
_i8.EmailFilter? emailFilter,
|
||||||
|
_i9.Properties? propertiesCreated,
|
||||||
|
_i9.Properties? propertiesUpdated}) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(#refreshAll, [
|
||||||
|
accountId
|
||||||
|
], {
|
||||||
|
#limit: limit,
|
||||||
|
#sort: sort,
|
||||||
|
#emailFilter: emailFilter,
|
||||||
|
#propertiesCreated: propertiesCreated,
|
||||||
|
#propertiesUpdated: propertiesUpdated
|
||||||
|
}),
|
||||||
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
||||||
_i5.AccountId? accountId, _i10.State? currentState,
|
_i5.AccountId? accountId, _i10.State? currentState,
|
||||||
{Set<_i7.Comparator>? sort,
|
{Set<_i7.Comparator>? sort,
|
||||||
@@ -77,29 +98,16 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(_i5.AccountId? accountId,
|
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(
|
||||||
{_i6.UnsignedInt? limit,
|
_i12.GetEmailRequest? emailRequest) =>
|
||||||
Set<_i7.Comparator>? sort,
|
(super.noSuchMethod(Invocation.method(#loadMoreEmails, [emailRequest]),
|
||||||
_i12.Filter? filter,
|
|
||||||
_i9.Properties? properties,
|
|
||||||
_i13.EmailId? lastEmailId}) =>
|
|
||||||
(super.noSuchMethod(
|
|
||||||
Invocation.method(#loadMoreEmails, [
|
|
||||||
accountId
|
|
||||||
], {
|
|
||||||
#limit: limit,
|
|
||||||
#sort: sort,
|
|
||||||
#filter: filter,
|
|
||||||
#properties: properties,
|
|
||||||
#lastEmailId: lastEmailId
|
|
||||||
}),
|
|
||||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||||
as _i3.Stream<_i4.EmailsResponse>);
|
as _i3.Stream<_i4.EmailsResponse>);
|
||||||
@override
|
@override
|
||||||
_i3.Future<List<_i13.Email>> searchEmails(_i5.AccountId? accountId,
|
_i3.Future<List<_i13.Email>> searchEmails(_i5.AccountId? accountId,
|
||||||
{_i6.UnsignedInt? limit,
|
{_i6.UnsignedInt? limit,
|
||||||
Set<_i7.Comparator>? sort,
|
Set<_i7.Comparator>? sort,
|
||||||
_i12.Filter? filter,
|
_i14.Filter? filter,
|
||||||
_i9.Properties? properties}) =>
|
_i9.Properties? properties}) =>
|
||||||
(super.noSuchMethod(
|
(super.noSuchMethod(
|
||||||
Invocation.method(#searchEmails, [
|
Invocation.method(#searchEmails, [
|
||||||
@@ -112,4 +120,10 @@ class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
|||||||
}),
|
}),
|
||||||
returnValue: Future<List<_i13.Email>>.value(<_i13.Email>[]))
|
returnValue: Future<List<_i13.Email>>.value(<_i13.Email>[]))
|
||||||
as _i3.Future<List<_i13.Email>>);
|
as _i3.Future<List<_i13.Email>>);
|
||||||
|
@override
|
||||||
|
_i3.Future<bool> emptyTrashFolder(
|
||||||
|
_i5.AccountId? accountId, _i11.MailboxId? trashMailboxId) =>
|
||||||
|
(super.noSuchMethod(
|
||||||
|
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
||||||
|
returnValue: Future<bool>.value(false)) as _i3.Future<bool>);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user