TF-1709 Add sort order type

(cherry picked from commit 1e7bddac324e33793cbe62e0582eea61349b2649)
This commit is contained in:
hieubt
2023-11-11 00:29:34 +07:00
committed by Dat Vu
parent 89cfd71a3e
commit b96b93f1c5
@@ -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,
);
}
}