diff --git a/Wino.Core.Domain/Enums/FilterOptionType.cs b/Wino.Core.Domain/Enums/FilterOptionType.cs
index 4882f76b..02bf14ff 100644
--- a/Wino.Core.Domain/Enums/FilterOptionType.cs
+++ b/Wino.Core.Domain/Enums/FilterOptionType.cs
@@ -5,6 +5,7 @@
All,
Unread,
Flagged,
- Mentions
+ Mentions,
+ Files
}
}
diff --git a/Wino.Core.Domain/Translations/en_US/resources.json b/Wino.Core.Domain/Translations/en_US/resources.json
index 4d5fc623..4e352e7d 100644
--- a/Wino.Core.Domain/Translations/en_US/resources.json
+++ b/Wino.Core.Domain/Translations/en_US/resources.json
@@ -121,6 +121,7 @@
"FilteringOption_All": "All",
"FilteringOption_Flagged": "Flagged",
"FilteringOption_Unread": "Unread",
+ "FilteringOption_Files": "Has files",
"Focused": "Focused",
"FolderOperation_CreateSubFolder": "Create sub folder",
"FolderOperation_Delete": "Delete",
diff --git a/Wino.Core.Domain/Translator.Designer.cs b/Wino.Core.Domain/Translator.Designer.cs
index 6f905ef8..03b2e26e 100644
--- a/Wino.Core.Domain/Translator.Designer.cs
+++ b/Wino.Core.Domain/Translator.Designer.cs
@@ -628,6 +628,11 @@ namespace Wino.Core.Domain
///
public static string FilteringOption_Unread => Resources.GetTranslatedString(@"FilteringOption_Unread");
+ ///
+ /// Has files
+ ///
+ public static string FilteringOption_Files => Resources.GetTranslatedString(@"FilteringOption_Files");
+
///
/// Focused
///
diff --git a/Wino.Core/Services/MailService.cs b/Wino.Core/Services/MailService.cs
index 18be6ec9..cff165f2 100644
--- a/Wino.Core/Services/MailService.cs
+++ b/Wino.Core/Services/MailService.cs
@@ -156,6 +156,9 @@ namespace Wino.Core.Services
case FilterOptionType.Flagged:
query.Where("MailCopy.IsFlagged", true);
break;
+ case FilterOptionType.Files:
+ query.Where("MailCopy.HasAttachments", true);
+ break;
}
if (options.IsFocusedOnly != null)
diff --git a/Wino.Mail.ViewModels/MailListPageViewModel.cs b/Wino.Mail.ViewModels/MailListPageViewModel.cs
index 6e9d4ae0..103b66f6 100644
--- a/Wino.Mail.ViewModels/MailListPageViewModel.cs
+++ b/Wino.Mail.ViewModels/MailListPageViewModel.cs
@@ -88,7 +88,8 @@ namespace Wino.Mail.ViewModels
[
new (Translator.FilteringOption_All, FilterOptionType.All),
new (Translator.FilteringOption_Unread, FilterOptionType.Unread),
- new (Translator.FilteringOption_Flagged, FilterOptionType.Flagged)
+ new (Translator.FilteringOption_Flagged, FilterOptionType.Flagged),
+ new (Translator.FilteringOption_Files, FilterOptionType.Files)
];
private FolderPivotViewModel _selectedFolderPivot;
@@ -510,14 +511,12 @@ namespace Wino.Mail.ViewModels
private bool ShouldPreventItemAdd(IMailItem mailItem)
{
- bool condition2 = false;
-
- bool condition1 = mailItem.IsRead
+ bool condition = mailItem.IsRead
&& SelectedFilterOption.Type == FilterOptionType.Unread
|| !mailItem.IsFlagged
&& SelectedFilterOption.Type == FilterOptionType.Flagged;
- return condition1 || condition2;
+ return condition;
}
protected override async void OnMailAdded(MailCopy addedMail)
@@ -546,7 +545,7 @@ namespace Wino.Mail.ViewModels
NotifyItemFoundState();
});
}
- catch (Exception) { }
+ catch { }
finally
{
listManipulationSemepahore.Release();
diff --git a/Wino.Mail/Helpers/XamlHelpers.cs b/Wino.Mail/Helpers/XamlHelpers.cs
index 04fdae1e..9d7d5149 100644
--- a/Wino.Mail/Helpers/XamlHelpers.cs
+++ b/Wino.Mail/Helpers/XamlHelpers.cs
@@ -108,22 +108,16 @@ namespace Wino.Helpers
#region Wino Font Icon Transformation
- public static WinoIconGlyph GetWinoIconGlyph(FilterOptionType type)
+ public static WinoIconGlyph GetWinoIconGlyph(FilterOptionType type) => type switch
{
- switch (type)
- {
- case FilterOptionType.All:
- return WinoIconGlyph.SpecialFolderCategory;
- case FilterOptionType.Unread:
- return WinoIconGlyph.MarkUnread;
- case FilterOptionType.Flagged:
- return WinoIconGlyph.Flag;
- case FilterOptionType.Mentions:
- return WinoIconGlyph.NewMail;
- default:
- return WinoIconGlyph.None;
- }
- }
+ FilterOptionType.All => WinoIconGlyph.SpecialFolderCategory,
+ FilterOptionType.Unread => WinoIconGlyph.MarkUnread,
+ FilterOptionType.Flagged => WinoIconGlyph.Flag,
+ FilterOptionType.Mentions => WinoIconGlyph.NewMail,
+ // TODO: Attachments icon should be added to WinoIcons.ttf.
+ FilterOptionType.Files => WinoIconGlyph.None,
+ _ => WinoIconGlyph.None,
+ };
public static WinoIconGlyph GetWinoIconGlyph(MailOperation operation)
{
diff --git a/Wino.Mail/Views/MailRenderingPage.xaml b/Wino.Mail/Views/MailRenderingPage.xaml
index 3a2888fe..c2583465 100644
--- a/Wino.Mail/Views/MailRenderingPage.xaml
+++ b/Wino.Mail/Views/MailRenderingPage.xaml
@@ -111,7 +111,8 @@
+ Padding="0,0,5,0"
+ MaxWidth="200">