mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2025-06-22 13:57:28 +02:00
Version 3.0.381
This commit is contained in:
parent
f963c0a219
commit
3a363acf3a
1525 changed files with 60589 additions and 125098 deletions
|
@ -0,0 +1,62 @@
|
|||
using System.ComponentModel;
|
||||
using ShareeBike.MultilingualResources;
|
||||
using ShareeBike.Services;
|
||||
using ShareeBike.Services.CopriApi.ServerUris;
|
||||
using ShareeBike.View.Themes;
|
||||
using ShareeBike.ViewModel.LegalInformation;
|
||||
|
||||
namespace ShareeBike.ViewModel.RootShell
|
||||
{
|
||||
public class AppShellViewModel : INotifyPropertyChanged
|
||||
{
|
||||
public AppShellViewModel()
|
||||
{
|
||||
App.ModelRoot.ActiveUser.StateChanged += (sender, eventargs) =>
|
||||
{
|
||||
// Login state changed. Update related menu entries.
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsMyBikesPageVisible)));
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsAccountPageVisible)));
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsLoginPageVisible)));
|
||||
};
|
||||
|
||||
// Update flyout view model whenever theme is switched.
|
||||
App.ModelRoot.Themes.PropertyChanged += (sender, eventargs) =>
|
||||
{
|
||||
if (!(sender is ServicesContainerMutableT<object> themes))
|
||||
return;
|
||||
|
||||
MasterDetailMenuTitle = GetMasterDetailMenuTitle(themes.Active);
|
||||
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MasterDetailMenuTitle)));
|
||||
};
|
||||
|
||||
MasterDetailMenuTitle = GetMasterDetailMenuTitle(App.ModelRoot.Themes.Active);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the flyout title from theme name
|
||||
/// </summary>
|
||||
/// <param name="theme">Name of theme.</param>
|
||||
/// <returns>Flyout title.</returns>
|
||||
private string GetMasterDetailMenuTitle(object theme)
|
||||
{
|
||||
if (!(theme is ITheme active))
|
||||
return ShareeBike.Themes.ShareeBike.OPERATORINFO;
|
||||
|
||||
return $"{(!string.IsNullOrEmpty(active.OperatorInfo) ? ($"{active.OperatorInfo}") : "sharee.bike")}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Holds the title of the flyout page.
|
||||
/// </summary>
|
||||
public string MasterDetailMenuTitle { get; private set; }
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public bool IsMyBikesPageVisible => App.ModelRoot.ActiveUser.IsLoggedIn;
|
||||
|
||||
public bool IsAccountPageVisible => App.ModelRoot.ActiveUser.IsLoggedIn;
|
||||
|
||||
public bool IsLoginPageVisible => !App.ModelRoot.ActiveUser.IsLoggedIn;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue