using System; using Avalonia.Controls; using Avalonia.Interactivity; using LauncherGUI.ViewModels; namespace LauncherGUI.Views; using Plombir; public partial class SessionManagmentWindow : Window { private MainWindowViewModel _mainWindowVM; public SessionManagmentWindow(MainWindowViewModel mainWindowVM) { InitializeComponent(); _mainWindowVM = mainWindowVM; PopulateInfo(); } private void PopulateInfo() { inputNickname.Text = _mainWindowVM.Usernick; // setting default nickname. currentNickname.Text = _mainWindowVM.Usernick; loginMethod.Text = _mainWindowVM.LoginMethod; currentUuid.Text = _mainWindowVM.UUID; } private void OnSaveButtonClick(object sender, RoutedEventArgs e) { if (sender is not Button button) return; _mainWindowVM.Usernick = inputNickname.Text; Console.WriteLine($"Changing nickname to {inputNickname.Text}"); button.Content = "Saved!"; SaveSessionInfo(); PopulateInfo(); } async private void OnMicrosoftLoginClick(object sender, RoutedEventArgs e) { var session = await Utils.GetLicensedSession(); _mainWindowVM.LoginMethod = "microsoft"; _mainWindowVM.Usernick = session.Username; _mainWindowVM.UUID = session.UUID; _mainWindowVM.AccsesToken = session.AccessToken; SaveSessionInfo(); PopulateInfo(); } private void SaveSessionInfo() { ConfigManager.WriteInConfig("nickname", _mainWindowVM.Usernick); ConfigManager.WriteInConfig("login-method", _mainWindowVM.LoginMethod); ConfigManager.WriteInConfig("uuid", _mainWindowVM.UUID); ConfigManager.WriteInConfig("accsess-token", _mainWindowVM.AccsesToken); } }