Folder operations, Gmail folder sync improvements and rework of menu items. (#273)
* New rename folder dialog keys. * Insfra work for folder operations and rename folder code. * RenameFolder for Gmail. * Fixed input dialog to take custom take for primary button. * Missing rename for DS call. * Outlook to throw exception in case of error. * Implemented rename folder functionality for Outlook. * Remove default primary text from input dialog. * Fixed an issue where outlook folder rename does not work. * Disable vertical scroll for composing page editor items. * Fixing some issues with imap folder sync. * fix copy pasta * TODO folder update/removed overrides for shell. * New rename folder dialog keys. * Insfra work for folder operations and rename folder code. * RenameFolder for Gmail. * Fixed input dialog to take custom take for primary button. * Missing rename for DS call. * Outlook to throw exception in case of error. * Implemented rename folder functionality for Outlook. * Remove default primary text from input dialog. * Fixed an issue where outlook folder rename does not work. * Disable vertical scroll for composing page editor items. * Fixing some issues with imap folder sync. * fix copy pasta * TODO folder update/removed overrides for shell. * New rename folder dialog keys. * Insfra work for folder operations and rename folder code. * RenameFolder for Gmail. * Fixed input dialog to take custom take for primary button. * Missing rename for DS call. * Outlook to throw exception in case of error. * Implemented rename folder functionality for Outlook. * Remove default primary text from input dialog. * Fixed an issue where outlook folder rename does not work. * Disable vertical scroll for composing page editor items. * Fixing some issues with imap folder sync. * fix copy pasta * TODO folder update/removed overrides for shell. * New rename folder dialog keys. * Fixed an issue where redundant older updates causing pivots to be re-created. * New empty folder request * New rename folder dialog keys. * Insfra work for folder operations and rename folder code. * RenameFolder for Gmail. * Fixed input dialog to take custom take for primary button. * Missing rename for DS call. * Outlook to throw exception in case of error. * Implemented rename folder functionality for Outlook. * Remove default primary text from input dialog. * Fixed an issue where outlook folder rename does not work. * Fixing some issues with imap folder sync. * fix copy pasta * TODO folder update/removed overrides for shell. * New rename folder dialog keys. * New rename folder dialog keys. * New rename folder dialog keys. * Fixed an issue where redundant older updates causing pivots to be re-created. * New empty folder request * Enable empty folder on base sync. * Move updates on event listeners. * Remove folder UI messages. * Reworked folder synchronization for gmail. * Loading folders on the fly as the selected account changed instead of relying on cached menu items. * Merged account folder items, re-navigating to existing rendering page. * - Reworked merged account menu system. - Reworked unread item count loadings. - Fixed back button visibility. - Instant rendering of mails if renderer is active. - Animation fixes. - Menu item re-load crash/hang fixes. * Handle folder renaming on the UI. * Empty folder for all synchronizers. * New execution delay mechanism and handling folder mark as read for all synchronizers. * Revert UI changes on failure for IMAP. * Remove duplicate translation keys. * Cleanup.
This commit is contained in:
@@ -19,6 +19,7 @@ using Wino.Core.Domain;
|
||||
using Wino.Core.Domain.Entities;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
using Wino.Core.Domain.Models.Folders;
|
||||
using Wino.Core.Domain.Models.MailItem;
|
||||
using Wino.Core.Domain.Models.Menus;
|
||||
using Wino.Core.Domain.Models.Reader;
|
||||
@@ -309,24 +310,24 @@ namespace Wino.Mail.ViewModels
|
||||
MailCollection.CoreDispatcher = Dispatcher;
|
||||
}
|
||||
|
||||
protected override async void OnFolderUpdated(MailItemFolder updatedFolder, MailAccount account)
|
||||
{
|
||||
base.OnFolderUpdated(updatedFolder, account);
|
||||
//protected override async void OnFolderUpdated(MailItemFolder updatedFolder, MailAccount account)
|
||||
//{
|
||||
// base.OnFolderUpdated(updatedFolder, account);
|
||||
|
||||
// Don't need to update if the folder update does not belong to the current folder menu item.
|
||||
if (ActiveFolder == null || updatedFolder == null || !ActiveFolder.HandlingFolders.Any(a => a.Id == updatedFolder.Id)) return;
|
||||
// // Don't need to update if the folder update does not belong to the current folder menu item.
|
||||
// if (ActiveFolder == null || updatedFolder == null || !ActiveFolder.HandlingFolders.Any(a => a.Id == updatedFolder.Id)) return;
|
||||
|
||||
await ExecuteUIThread(() =>
|
||||
{
|
||||
ActiveFolder.UpdateFolder(updatedFolder);
|
||||
// await ExecuteUIThread(() =>
|
||||
// {
|
||||
// ActiveFolder.UpdateFolder(updatedFolder);
|
||||
|
||||
OnPropertyChanged(nameof(CanSynchronize));
|
||||
OnPropertyChanged(nameof(IsFolderSynchronizationEnabled));
|
||||
});
|
||||
// OnPropertyChanged(nameof(CanSynchronize));
|
||||
// OnPropertyChanged(nameof(IsFolderSynchronizationEnabled));
|
||||
// });
|
||||
|
||||
// Force synchronization after enabling the folder.
|
||||
SyncFolder();
|
||||
}
|
||||
// // Force synchronization after enabling the folder.
|
||||
// SyncFolder();
|
||||
//}
|
||||
|
||||
private async void UpdateBarMessage(InfoBarMessageType severity, string title, string message)
|
||||
{
|
||||
@@ -523,14 +524,6 @@ namespace Wino.Mail.ViewModels
|
||||
{
|
||||
await _folderService.ChangeFolderSynchronizationStateAsync(folder.Id, true);
|
||||
}
|
||||
|
||||
// TODO
|
||||
//ActiveFolder.IsSynchronizationEnabled = true;
|
||||
|
||||
//OnPropertyChanged(nameof(IsFolderSynchronizationEnabled));
|
||||
//OnPropertyChanged(nameof(CanSynchronize));
|
||||
|
||||
//SyncFolderCommand?.Execute(null);
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
@@ -652,6 +645,8 @@ namespace Wino.Mail.ViewModels
|
||||
{
|
||||
base.OnMailRemoved(removedMail);
|
||||
|
||||
if (removedMail.AssignedAccount == null || removedMail.AssignedFolder == null) return;
|
||||
|
||||
// We should delete the items only if:
|
||||
// 1. They are deleted from the active folder.
|
||||
// 2. Deleted from draft or sent folder.
|
||||
@@ -954,6 +949,21 @@ namespace Wino.Mail.ViewModels
|
||||
public async void Receive(NewSynchronizationRequested message)
|
||||
=> await ExecuteUIThread(() => { OnPropertyChanged(nameof(CanSynchronize)); });
|
||||
|
||||
protected override async void OnFolderSynchronizationEnabled(IMailItemFolder mailItemFolder)
|
||||
{
|
||||
if (ActiveFolder?.EntityId != mailItemFolder.Id) return;
|
||||
|
||||
await ExecuteUIThread(() =>
|
||||
{
|
||||
ActiveFolder.UpdateFolder(mailItemFolder);
|
||||
|
||||
OnPropertyChanged(nameof(CanSynchronize));
|
||||
OnPropertyChanged(nameof(IsFolderSynchronizationEnabled));
|
||||
});
|
||||
|
||||
SyncFolderCommand?.Execute(null);
|
||||
}
|
||||
|
||||
public async void Receive(AccountSynchronizerStateChanged message)
|
||||
=> await CheckIfAccountIsSynchronizingAsync();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user