TF-2323 Use position to load more emails when sort by Subject & Sender

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 847a56bfd331dc29f05493a861fb6f21da2b2cde)
This commit is contained in:
dab246
2023-12-18 11:26:14 +07:00
committed by Dat H. Pham
parent 1ad18e5ecc
commit d5f646af79
18 changed files with 257 additions and 55 deletions
@@ -21,6 +21,7 @@ abstract class ThreadDataSource {
AccountId accountId,
{
UnsignedInt? limit,
int? position,
Set<Comparator>? sort,
Filter? filter,
Properties? properties
@@ -31,6 +31,7 @@ class LocalThreadDataSourceImpl extends ThreadDataSource {
AccountId accountId,
{
UnsignedInt? limit,
int? position,
Set<Comparator>? sort,
Filter? filter,
Properties? properties
@@ -14,9 +14,9 @@ import 'package:model/email/presentation_email.dart';
import 'package:model/extensions/email_extension.dart';
import 'package:tmail_ui_user/features/thread/data/datasource/thread_datasource.dart';
import 'package:tmail_ui_user/features/thread/data/model/email_change_response.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/domain/model/email_response.dart';
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
@@ -38,6 +38,7 @@ class ThreadDataSourceImpl extends ThreadDataSource {
AccountId accountId,
{
UnsignedInt? limit,
int? position,
Set<Comparator>? sort,
Filter? filter,
Properties? properties,
@@ -48,6 +49,7 @@ class ThreadDataSourceImpl extends ThreadDataSource {
session,
accountId,
limit: limit,
position: position,
sort: sort,
filter: filter,
properties: properties);
@@ -31,6 +31,7 @@ class ThreadAPI {
AccountId accountId,
{
UnsignedInt? limit,
int? position,
Set<Comparator>? sort,
Filter? filter,
Properties? properties
@@ -44,6 +45,8 @@ class ThreadAPI {
if (limit != null) queryEmailMethod.addLimit(limit);
if (position != null) queryEmailMethod.addPosition(position);
if (sort != null) queryEmailMethod.addSorts(sort);
if (filter != null) queryEmailMethod.addFilters(filter);
@@ -39,6 +39,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
AccountId accountId,
{
UnsignedInt? limit,
int? position,
Set<Comparator>? sort,
EmailFilter? emailFilter,
Properties? propertiesCreated,
@@ -67,6 +68,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
session,
accountId,
limit: limit,
position: position,
sort: sort,
filter: emailFilter?.filter,
properties: propertiesCreated);
@@ -75,6 +77,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
session,
accountId,
sort: sort,
position: position,
mailboxId: emailFilter?.mailboxId,
propertiesCreated: propertiesCreated,
);
@@ -131,6 +134,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
AccountId accountId,
{
Set<Comparator>? sort,
int? position,
MailboxId? mailboxId,
Properties? propertiesCreated,
Filter? filter,
@@ -140,6 +144,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
session,
accountId,
limit: ThreadConstants.defaultLimit,
position: position,
sort: sort,
filter: filter ?? EmailFilterCondition(inMailbox: mailboxId),
properties: propertiesCreated,
@@ -266,6 +271,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
emailRequest.session,
emailRequest.accountId,
limit: emailRequest.limit,
position: emailRequest.position,
sort: emailRequest.sort,
filter: emailRequest.filter,
properties: emailRequest.properties)
@@ -283,6 +289,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
AccountId accountId,
{
UnsignedInt? limit,
int? position,
Set<Comparator>? sort,
Filter? filter,
Properties? properties
@@ -292,6 +299,7 @@ class ThreadRepositoryImpl extends ThreadRepository {
session,
accountId,
limit: limit,
position: position,
sort: sort,
filter: filter,
properties: properties);