TF-1709 Add sort order type
(cherry picked from commit 1e7bddac324e33793cbe62e0582eea61349b2649)
This commit is contained in:
@@ -0,0 +1,73 @@
|
|||||||
|
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';
|
||||||
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||||
|
|
||||||
|
enum EmailSortOrderType {
|
||||||
|
mostRecent,
|
||||||
|
oldest,
|
||||||
|
relevance,
|
||||||
|
senderAscending,
|
||||||
|
senderDescending,
|
||||||
|
subjectAscending,
|
||||||
|
subjectDescending;
|
||||||
|
|
||||||
|
String getTitle(BuildContext context) {
|
||||||
|
switch (this) {
|
||||||
|
case EmailSortOrderType.mostRecent:
|
||||||
|
return AppLocalizations.of(context).mostRecent;
|
||||||
|
case EmailSortOrderType.oldest:
|
||||||
|
return AppLocalizations.of(context).oldest;
|
||||||
|
case EmailSortOrderType.relevance:
|
||||||
|
return AppLocalizations.of(context).relevance;
|
||||||
|
case EmailSortOrderType.senderAscending:
|
||||||
|
return AppLocalizations.of(context).senderAscending;
|
||||||
|
case EmailSortOrderType.senderDescending:
|
||||||
|
return AppLocalizations.of(context).senderDescending;
|
||||||
|
case EmailSortOrderType.subjectAscending:
|
||||||
|
return AppLocalizations.of(context).subjectAscending;
|
||||||
|
case EmailSortOrderType.subjectDescending:
|
||||||
|
return AppLocalizations.of(context).subjectDescending;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<Comparator> getSortOrder() {
|
||||||
|
switch (this) {
|
||||||
|
case EmailSortOrderType.mostRecent:
|
||||||
|
return <Comparator>{}
|
||||||
|
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||||
|
..setIsAscending(false));
|
||||||
|
case EmailSortOrderType.oldest:
|
||||||
|
return <Comparator>{}
|
||||||
|
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||||
|
..setIsAscending(true));
|
||||||
|
case EmailSortOrderType.relevance:
|
||||||
|
return <Comparator>{};
|
||||||
|
case EmailSortOrderType.senderAscending:
|
||||||
|
return <Comparator>{}
|
||||||
|
..add(EmailComparator(EmailComparatorProperty.from)
|
||||||
|
..setIsAscending(true));
|
||||||
|
case EmailSortOrderType.senderDescending:
|
||||||
|
return <Comparator>{}
|
||||||
|
..add(EmailComparator(EmailComparatorProperty.from)
|
||||||
|
..setIsAscending(false));
|
||||||
|
case EmailSortOrderType.subjectAscending:
|
||||||
|
return <Comparator>{}
|
||||||
|
..add(EmailComparator(EmailComparatorProperty.subject)
|
||||||
|
..setIsAscending(true));
|
||||||
|
case EmailSortOrderType.subjectDescending:
|
||||||
|
return <Comparator>{}
|
||||||
|
..add(EmailComparator(EmailComparatorProperty.subject)
|
||||||
|
..setIsAscending(false));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TextStyle getTextStyle({required bool isInDropdown}) {
|
||||||
|
return TextStyle(
|
||||||
|
fontSize: isInDropdown ? 15 : 16,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
color: Colors.black,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user