using Avalonia.Controls; using Avalonia.Interactivity; using System; using System.IO; using System.Text.Json; namespace HAcontrol; public partial class SettingsWindow : Window { public static readonly string SettingsFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "ha_control_settings.json"); public SettingsWindow() { InitializeComponent(); LoadSettings(); } private void LoadSettings() { if (!File.Exists(SettingsFile)) return; var json = File.ReadAllText(SettingsFile); var settings = JsonSerializer.Deserialize(json); if (settings != null) { UrlBox.Text = settings.HomeAssistantUrl; TokenBox.Text = settings.AccessToken; WebhookBox.Text = settings.WebhookId; EntityBox.Text = settings.Entity; FaderEntityBox.Text = settings.FaderEntity; } } private void Save_Click(object? sender, RoutedEventArgs e) { var settings = new Settings { HomeAssistantUrl = UrlBox.Text ?? string.Empty, AccessToken = TokenBox.Text ?? string.Empty, WebhookId = WebhookBox.Text ?? string.Empty, Entity = EntityBox.Text ?? string.Empty, FaderEntity = FaderEntityBox.Text ?? string.Empty }; var json = JsonSerializer.Serialize(settings, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(SettingsFile, json); this.Close(); MainWindow.Self?.LoadSettings(); } }