2026-06-12 16:06:37 +02:00
|
|
|
using Avalonia;
|
|
|
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
|
|
|
using Avalonia.Markup.Xaml;
|
|
|
|
|
using PalladiumWallet.App.ViewModels;
|
|
|
|
|
using PalladiumWallet.App.Views;
|
|
|
|
|
|
|
|
|
|
namespace PalladiumWallet.App;
|
|
|
|
|
|
|
|
|
|
public partial class App : Application
|
|
|
|
|
{
|
2026-07-19 16:01:07 +02:00
|
|
|
/// <summary>Set once the single ViewModel is created; lets platform heads (e.g. the
|
|
|
|
|
/// Android activity) reach it for lifecycle events without a second instance.</summary>
|
|
|
|
|
public static MainWindowViewModel? MainViewModel { get; private set; }
|
|
|
|
|
|
2026-06-12 16:06:37 +02:00
|
|
|
public override void Initialize()
|
|
|
|
|
{
|
|
|
|
|
AvaloniaXamlLoader.Load(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
|
|
|
{
|
|
|
|
|
var vm = new MainWindowViewModel();
|
2026-07-19 16:01:07 +02:00
|
|
|
MainViewModel = vm;
|
2026-06-12 16:06:37 +02:00
|
|
|
|
2026-06-16 14:40:06 +02:00
|
|
|
// Desktop (Windows/Linux): classic window. Mobile (Android): single
|
|
|
|
|
// view. Same shared UI (MainView) and same ViewModel.
|
2026-06-12 16:06:37 +02:00
|
|
|
switch (ApplicationLifetime)
|
|
|
|
|
{
|
|
|
|
|
case IClassicDesktopStyleApplicationLifetime desktop:
|
|
|
|
|
desktop.MainWindow = new MainWindow { DataContext = vm };
|
|
|
|
|
break;
|
|
|
|
|
case ISingleViewApplicationLifetime singleView:
|
|
|
|
|
singleView.MainView = new MainView { DataContext = vm };
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
base.OnFrameworkInitializationCompleted();
|
|
|
|
|
}
|
|
|
|
|
}
|