Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
SelectLanguagePopup.xaml.cs
1using CommunityToolkit.Mvvm.Input;
4using System.Globalization;
6{
7 public partial class SelectLanguagePopup
8 {
9 public override double ViewWidthRequest => (DeviceDisplay.MainDisplayInfo.Width / DeviceDisplay.MainDisplayInfo.Density) * (3.0 / 4.0);
10 public List<LanguageInfo> Languages { get; } = new(App.SupportedLanguages);
11
12 public SelectLanguagePopup()
13 {
14 this.InitializeComponent();
15
16 this.BindingContext = this;
17 this.SelectLanguage(App.SelectedLanguage.Name);
18
19 }
20
21 [RelayCommand]
22 public void SelectLanguage(object Option)
23 {
24 if (Option is not string Name)
25 return;
26
27 LanguageInfo? SelectedLanguage = null;
28
29 foreach (object Item in this.LanguagesContainer)
30 {
31 if ((Item is VisualElement Element) &&
32 (Element.BindingContext is LanguageInfo LanguageInfo))
33 {
34 if (Name == LanguageInfo.Name)
35 {
36 VisualStateManager.GoToState(Element, VisualStateManager.CommonStates.Selected);
37 SelectedLanguage = LanguageInfo;
38
39 Task ExecutionTask = this.Dispatcher.DispatchAsync(() => this.InnerScrollView.ScrollToAsync(Element, ScrollToPosition.MakeVisible, true));
40 }
41 else
42 VisualStateManager.GoToState(Element, VisualStateManager.CommonStates.Normal);
43 }
44 }
45
46 if ((SelectedLanguage is not null) && (Name != CultureInfo.CurrentCulture.Name))
47 {
48 Preferences.Set("user_selected_language", SelectedLanguage.TwoLetterISOLanguageName);
49 LocalizationManager.Current.CurrentCulture = SelectedLanguage;
50 }
51 ServiceRef.UiService.PopAsync();
52 }
53 }
54}
The Application class, representing an instance of the Neuro-Access app.
Definition: App.xaml.cs:69
static LanguageInfo SelectedLanguage
Selected language.
Definition: App.xaml.cs:196
static readonly LanguageInfo[] SupportedLanguages
Supported languages.
Definition: App.xaml.cs:176
Base class that references services in the app.
Definition: ServiceRef.cs:31
static IUiService UiService
Service serializing and managing UI-related tasks.
Definition: ServiceRef.cs:55