TF-1709 Implement sortOrder
(cherry picked from commit b3e5844bf37c692f763ccbf66bcbfb63c75d2d9f)
This commit is contained in:
+33
-20
@@ -1,3 +1,4 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart';
|
||||
@@ -32,34 +33,46 @@ enum EmailSortOrderType {
|
||||
}
|
||||
}
|
||||
|
||||
Set<Comparator> getSortOrder() {
|
||||
Option<Set<Comparator>> getSortOrder() {
|
||||
switch (this) {
|
||||
case EmailSortOrderType.mostRecent:
|
||||
return <Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||
..setIsAscending(false));
|
||||
return Some(
|
||||
<Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||
..setIsAscending(false))
|
||||
);
|
||||
case EmailSortOrderType.oldest:
|
||||
return <Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||
..setIsAscending(true));
|
||||
return Some(
|
||||
<Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||
..setIsAscending(true))
|
||||
);
|
||||
case EmailSortOrderType.relevance:
|
||||
return <Comparator>{};
|
||||
return const None();
|
||||
case EmailSortOrderType.senderAscending:
|
||||
return <Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.from)
|
||||
..setIsAscending(true));
|
||||
return Some(
|
||||
<Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.from)
|
||||
..setIsAscending(true))
|
||||
);
|
||||
case EmailSortOrderType.senderDescending:
|
||||
return <Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.from)
|
||||
..setIsAscending(false));
|
||||
return Some(
|
||||
<Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.from)
|
||||
..setIsAscending(false))
|
||||
);
|
||||
case EmailSortOrderType.subjectAscending:
|
||||
return <Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.subject)
|
||||
..setIsAscending(true));
|
||||
return Some(
|
||||
<Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.subject)
|
||||
..setIsAscending(true))
|
||||
);
|
||||
case EmailSortOrderType.subjectDescending:
|
||||
return <Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.subject)
|
||||
..setIsAscending(false));
|
||||
return Some(
|
||||
<Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.subject)
|
||||
..setIsAscending(false))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,14 +40,13 @@ class SearchEmailFilter with EquatableMixin {
|
||||
this.before,
|
||||
this.startDate,
|
||||
this.endDate,
|
||||
Set<Comparator>? sortOrder,
|
||||
this.sortOrder,
|
||||
}) : from = from ?? <String>{},
|
||||
to = to ?? <String>{},
|
||||
notKeyword = notKeyword ?? <String>{},
|
||||
hasAttachment = hasAttachment ?? false,
|
||||
emailReceiveTimeType =
|
||||
emailReceiveTimeType ?? EmailReceiveTimeType.allTime,
|
||||
sortOrder = sortOrder ?? <Comparator>{};
|
||||
emailReceiveTimeType ?? EmailReceiveTimeType.allTime;
|
||||
|
||||
SearchEmailFilter copyWith({
|
||||
Option<Set<String>>? fromOption,
|
||||
@@ -61,7 +60,7 @@ class SearchEmailFilter with EquatableMixin {
|
||||
Option<UTCDate>? beforeOption,
|
||||
Option<UTCDate>? startDateOption,
|
||||
Option<UTCDate>? endDateOption,
|
||||
Set<Comparator>? sortOrder,
|
||||
Option<Set<Comparator>>? sortOrderOption,
|
||||
}) {
|
||||
return SearchEmailFilter(
|
||||
from: _getOptionParam(fromOption, from),
|
||||
@@ -75,7 +74,7 @@ class SearchEmailFilter with EquatableMixin {
|
||||
before: _getOptionParam(beforeOption, before),
|
||||
startDate: _getOptionParam(startDateOption, startDate),
|
||||
endDate: _getOptionParam(endDateOption, endDate),
|
||||
sortOrder: sortOrder ?? this.sortOrder,
|
||||
sortOrder: _getOptionParam(sortOrderOption, sortOrder),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user