PlombirLauncher/Launcher-UI/Views/SessionManagmentWindow.axaml.cs
2025-02-26 17:04:42 +03:00

62 lines
1.9 KiB
C#

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;
_mainWindowVM.LoginMethod = "offline"; // Swapping to offline method
_mainWindowVM.UUID = "offline"; // Just to be sure
_mainWindowVM.AccsesToken = "offline";
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);
}
}