Implemented a new dialog for account re-ordering and required apis.
This commit is contained in:
@@ -264,11 +264,8 @@ namespace Wino.Mail.ViewModels
|
||||
mergedAccountProviderDetailViewModel));
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task ReorderAccountsAsync()
|
||||
{
|
||||
|
||||
}
|
||||
[RelayCommand(CanExecute = nameof(CanReorderAccounts))]
|
||||
private Task ReorderAccountsAsync() => DialogService.ShowAccountReorderDialogAsync(availableAccounts: Accounts);
|
||||
|
||||
public override void OnNavigatedFrom(NavigationMode mode, object parameters)
|
||||
{
|
||||
|
||||
@@ -39,7 +39,8 @@ namespace Wino.Mail.ViewModels
|
||||
IRecipient<RefreshUnreadCountsMessage>,
|
||||
IRecipient<AccountsMenuRefreshRequested>,
|
||||
IRecipient<MergedInboxRenamed>,
|
||||
IRecipient<LanguageChanged>
|
||||
IRecipient<LanguageChanged>,
|
||||
IRecipient<AccountMenuItemsReordered>
|
||||
{
|
||||
#region Menu Items
|
||||
|
||||
@@ -1059,5 +1060,19 @@ namespace Wino.Mail.ViewModels
|
||||
|
||||
ChangeLoadedAccount(latestSelectedAccountMenuItem, navigateInbox: false);
|
||||
}
|
||||
|
||||
private void ReorderAccountMenuItems(Dictionary<Guid, int> newAccountOrder)
|
||||
{
|
||||
foreach (var item in newAccountOrder)
|
||||
{
|
||||
var menuItem = MenuItems.GetAccountMenuItem(item.Key);
|
||||
|
||||
if (menuItem == null) continue;
|
||||
|
||||
MenuItems.Move(MenuItems.IndexOf(menuItem), item.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public void Receive(AccountMenuItemsReordered message) => ReorderAccountMenuItems(message.newOrderDictionary);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,10 @@ namespace Wino.Mail.ViewModels.Data
|
||||
|
||||
public string StartupEntityTitle => Account.Name;
|
||||
|
||||
public int Order => Account.Order;
|
||||
|
||||
public string StartupEntityAddresses => Account.Address;
|
||||
|
||||
public AccountProviderDetailViewModel(IProviderDetail providerDetail, MailAccount account)
|
||||
{
|
||||
ProviderDetail = providerDetail;
|
||||
|
||||
@@ -18,6 +18,12 @@ namespace Wino.Mail.ViewModels.Data
|
||||
|
||||
public string StartupEntityTitle => MergedInbox.Name;
|
||||
|
||||
public int Order => 0;
|
||||
|
||||
public IProviderDetail ProviderDetail { get; set; }
|
||||
|
||||
public string StartupEntityAddresses => AccountAddresses;
|
||||
|
||||
public MergedAccountProviderDetailViewModel(MergedInbox mergedInbox, List<AccountProviderDetailViewModel> holdingAccounts)
|
||||
{
|
||||
MergedInbox = mergedInbox;
|
||||
|
||||
Reference in New Issue
Block a user