Use common FilterField & EmailReceiveTimeType objects for the entire app
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -1,85 +0,0 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:model/email/prefix_email_address.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
enum AdvancedSearchFilterField {
|
||||
from,
|
||||
to,
|
||||
subject,
|
||||
hasKeyword,
|
||||
notKeyword,
|
||||
mailBox,
|
||||
date,
|
||||
sortBy,
|
||||
hasAttachment;
|
||||
|
||||
String getTitle(BuildContext context) {
|
||||
switch (this) {
|
||||
case AdvancedSearchFilterField.from:
|
||||
return AppLocalizations.of(context).from_email_address_prefix;
|
||||
case AdvancedSearchFilterField.to:
|
||||
return AppLocalizations.of(context).to_email_address_prefix;
|
||||
case AdvancedSearchFilterField.subject:
|
||||
return AppLocalizations.of(context).subject;
|
||||
case AdvancedSearchFilterField.hasKeyword:
|
||||
return AppLocalizations.of(context).hasTheWords;
|
||||
case AdvancedSearchFilterField.notKeyword:
|
||||
return AppLocalizations.of(context).doesNotHave;
|
||||
case AdvancedSearchFilterField.mailBox:
|
||||
return AppLocalizations.of(context).folder;
|
||||
case AdvancedSearchFilterField.date:
|
||||
return AppLocalizations.of(context).date;
|
||||
case AdvancedSearchFilterField.sortBy:
|
||||
return AppLocalizations.of(context).sortBy;
|
||||
case AdvancedSearchFilterField.hasAttachment:
|
||||
return AppLocalizations.of(context).hasAttachment;
|
||||
}
|
||||
}
|
||||
|
||||
String getHintText(BuildContext context) {
|
||||
switch (this) {
|
||||
case AdvancedSearchFilterField.from:
|
||||
case AdvancedSearchFilterField.to:
|
||||
return AppLocalizations.of(context).nameOrEmailAddress;
|
||||
case AdvancedSearchFilterField.subject:
|
||||
return AppLocalizations.of(context).enterASubject;
|
||||
case AdvancedSearchFilterField.hasKeyword:
|
||||
case AdvancedSearchFilterField.notKeyword:
|
||||
return AppLocalizations.of(context).enterSomeSuggestions;
|
||||
case AdvancedSearchFilterField.mailBox:
|
||||
return AppLocalizations.of(context).allFolders;
|
||||
case AdvancedSearchFilterField.date:
|
||||
return AppLocalizations.of(context).allTime;
|
||||
case AdvancedSearchFilterField.sortBy:
|
||||
return AppLocalizations.of(context).mostRecent;
|
||||
case AdvancedSearchFilterField.hasAttachment:
|
||||
return AppLocalizations.of(context).hasAttachment;
|
||||
}
|
||||
}
|
||||
|
||||
TextStyle getTitleTextStyle() {
|
||||
return ThemeUtils.defaultTextStyleInterFont.copyWith(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: AppColor.colorContentEmail);
|
||||
}
|
||||
|
||||
PrefixEmailAddress getPrefixEmailAddress() {
|
||||
switch (this) {
|
||||
case AdvancedSearchFilterField.from:
|
||||
return PrefixEmailAddress.from;
|
||||
case AdvancedSearchFilterField.to:
|
||||
return PrefixEmailAddress.to;
|
||||
default:
|
||||
return PrefixEmailAddress.cc;
|
||||
}
|
||||
}
|
||||
|
||||
TextStyle getHintTextStyle() {
|
||||
return ThemeUtils.defaultTextStyleInterFont.copyWith(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: AppColor.colorHintSearchBar);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,11 +7,39 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
enum EmailReceiveTimeType {
|
||||
allTime,
|
||||
last7Days,
|
||||
last15Days,
|
||||
last30Days,
|
||||
last6Months,
|
||||
last1Year,
|
||||
lastYear,
|
||||
customRange;
|
||||
|
||||
static List<EmailReceiveTimeType> get valuesForSearch => [
|
||||
allTime,
|
||||
last7Days,
|
||||
last30Days,
|
||||
last6Months,
|
||||
lastYear,
|
||||
customRange,
|
||||
];
|
||||
|
||||
static List<EmailReceiveTimeType> get valuesForRecoverDeletionDateField => [
|
||||
last7Days,
|
||||
last15Days,
|
||||
last30Days,
|
||||
last6Months,
|
||||
last1Year,
|
||||
];
|
||||
|
||||
static List<EmailReceiveTimeType> get valuesForRecoverReceptionDateDateField => [
|
||||
allTime,
|
||||
last7Days,
|
||||
last30Days,
|
||||
last6Months,
|
||||
lastYear,
|
||||
customRange,
|
||||
];
|
||||
|
||||
String getTitle(BuildContext context, {DateTime? startDate, DateTime? endDate}) {
|
||||
return getTitleByAppLocalizations(
|
||||
AppLocalizations.of(context),
|
||||
@@ -32,10 +60,14 @@ enum EmailReceiveTimeType {
|
||||
return appLocalizations.allTime;
|
||||
case EmailReceiveTimeType.last7Days:
|
||||
return appLocalizations.last7Days;
|
||||
case EmailReceiveTimeType.last15Days:
|
||||
return appLocalizations.last15Days;
|
||||
case EmailReceiveTimeType.last30Days:
|
||||
return appLocalizations.last30Days;
|
||||
case EmailReceiveTimeType.last6Months:
|
||||
return appLocalizations.last6Months;
|
||||
case EmailReceiveTimeType.last1Year:
|
||||
return appLocalizations.last1Year;
|
||||
case EmailReceiveTimeType.lastYear:
|
||||
return appLocalizations.lastYears;
|
||||
case EmailReceiveTimeType.customRange:
|
||||
@@ -58,6 +90,10 @@ enum EmailReceiveTimeType {
|
||||
final today = DateTime.now();
|
||||
final last7Days = today.subtract(const Duration(days: 7));
|
||||
return last7Days.toUTCDate();
|
||||
case EmailReceiveTimeType.last15Days:
|
||||
final today = DateTime.now();
|
||||
final last15Days = today.subtract(const Duration(days: 15));
|
||||
return last15Days.toUTCDate();
|
||||
case EmailReceiveTimeType.last30Days:
|
||||
final today = DateTime.now();
|
||||
final last30Days = today.subtract(const Duration(days: 30));
|
||||
@@ -66,6 +102,7 @@ enum EmailReceiveTimeType {
|
||||
final today = DateTime.now();
|
||||
final last6months = DateTime(today.year, today.month - 6, today.day);
|
||||
return last6months.toUTCDate();
|
||||
case EmailReceiveTimeType.last1Year:
|
||||
case EmailReceiveTimeType.lastYear:
|
||||
final today = DateTime.now();
|
||||
final lastYear = DateTime(today.year - 1, today.month, today.day);
|
||||
@@ -78,8 +115,10 @@ enum EmailReceiveTimeType {
|
||||
UTCDate? toLatestUTCDate() {
|
||||
switch(this) {
|
||||
case EmailReceiveTimeType.last7Days:
|
||||
case EmailReceiveTimeType.last15Days:
|
||||
case EmailReceiveTimeType.last30Days:
|
||||
case EmailReceiveTimeType.last6Months:
|
||||
case EmailReceiveTimeType.last1Year:
|
||||
case EmailReceiveTimeType.lastYear:
|
||||
return DateTime.now().toUTCDate();
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user