Fixing an issue where doing folder config on account does not refresh the folder list.

This commit is contained in:
Burak Kaan Köse
2024-08-22 01:20:08 +02:00
parent 298344c2ab
commit d060db3c96
5 changed files with 37 additions and 33 deletions

View File

@@ -151,15 +151,12 @@ namespace Wino.Core.MenuItems
return accountMenuItem;
}
public async Task ReplaceFoldersAsync(IEnumerable<IMenuItem> folders)
public void ReplaceFolders(IEnumerable<IMenuItem> folders)
{
await _dispatcher.ExecuteOnUIThread(() =>
{
ClearFolderAreaMenuItems();
ClearFolderAreaMenuItems();
Items.Add(new SeperatorItem());
AddRange(folders);
});
Items.Add(new SeperatorItem());
AddRange(folders);
}
/// <summary>
@@ -194,9 +191,11 @@ namespace Wino.Core.MenuItems
{
item.IsExpanded = false;
item.IsSelected = false;
Remove(item);
});
RemoveRange(itemsToRemove);
// RemoveRange(itemsToRemove);
}
}
}

View File

@@ -387,11 +387,6 @@ namespace Wino.Core.Services
if (configuration == null)
throw new ArgumentNullException(nameof(configuration));
var account = await _accountService.GetAccountAsync(accountId);
if (account == null)
throw new ArgumentNullException(nameof(account));
// Update system folders for this account.
await Task.WhenAll(UpdateSystemFolderInternalAsync(configuration.SentFolder, SpecialFolderType.Sent),
@@ -400,9 +395,8 @@ namespace Wino.Core.Services
UpdateSystemFolderInternalAsync(configuration.TrashFolder, SpecialFolderType.Deleted),
UpdateSystemFolderInternalAsync(configuration.ArchiveFolder, SpecialFolderType.Archive));
await _accountService.UpdateAccountAsync(account);
return account;
return await _accountService.GetAccountAsync(accountId).ConfigureAwait(false);
}
private Task UpdateSystemFolderInternalAsync(MailItemFolder folder, SpecialFolderType assignedSpecialFolderType)
@@ -492,13 +486,6 @@ namespace Wino.Core.Services
return;
}
var account = await _accountService.GetAccountAsync(folder.MailAccountId).ConfigureAwait(false);
if (account == null)
{
_logger.Warning("Account with id {MailAccountId} does not exist. Cannot update folder.", folder.MailAccountId);
return;
}
_logger.Debug("Updating folder {FolderName}", folder.Id, folder.FolderName);
await Connection.UpdateAsync(folder).ConfigureAwait(false);