// PRE-GENERATED (design session). Startup APO setup dialog code-behind.
using System;
using System.Windows;
using DansoriEQ.App.Apo;

namespace DansoriEQ.App;

public partial class ApoSetupWindow : Wpf.Ui.Controls.FluentWindow
{
    public ApoSetupWindow() => InitializeComponent();

    private async void BtnAutoInstall_Click(object sender, RoutedEventArgs e)
    {
        BtnAutoInstall.IsEnabled = false;
        var progress = new Progress<double>(p =>
        {
            Prog.Value = p * 100;
            TxtStatus.Text = $"설치 파일 다운로드 중… {p * 100:0}%";
        });
        try
        {
            var path = await ApoInstaller.DownloadAsync(progress);
            TxtStatus.Text = "설치 관리자를 실행합니다. 장치 선택 후 재부팅하고, 재부팅 후 앱을 다시 실행하세요.";
            ApoInstaller.Launch(path);
        }
        catch (Exception ex)
        {
            TxtStatus.Text = "다운로드 실패: " + ex.Message;
            BtnAutoInstall.IsEnabled = true;
        }
    }

    private void BtnSetPath_Click(object sender, RoutedEventArgs e)
    {
        var dlg = new Microsoft.Win32.OpenFolderDialog { Title = "Equalizer APO의 config 폴더를 선택하세요" };
        if (dlg.ShowDialog() == true)
        {
            var s = AppSettings.Load();
            s.ApoConfigDir = dlg.FolderName;
            s.Save();
            TxtStatus.Text = "APO 경로가 설정되었습니다.";
            DialogResult = true;
        }
    }

    private void BtnLater_Click(object sender, RoutedEventArgs e) => Close();
}
