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">