diff options
Diffstat (limited to 'MatrixUtils.Desktop/MainWindow.axaml.cs')
-rw-r--r-- | MatrixUtils.Desktop/MainWindow.axaml.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/MatrixUtils.Desktop/MainWindow.axaml.cs b/MatrixUtils.Desktop/MainWindow.axaml.cs new file mode 100644 index 0000000..562ab1a --- /dev/null +++ b/MatrixUtils.Desktop/MainWindow.axaml.cs @@ -0,0 +1,57 @@ +using Avalonia.Controls; +using Avalonia.Interactivity; +using MatrixUtils.Abstractions; +using MatrixUtils.Desktop.Components; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; + +namespace MatrixUtils.Desktop; + +public partial class MainWindow : Window { + private readonly ILogger<MainWindow> _logger; + private readonly IServiceScopeFactory _scopeFactory; + private readonly RMUStorageWrapper _storageWrapper; + private readonly RMUDesktopConfiguration _configuration; + public static MainWindow Instance { get; private set; } = null!; + + public MainWindow(ILogger<MainWindow> logger, IServiceScopeFactory scopeFactory, SentryService _) { + Instance = this; + _logger = logger; + _scopeFactory = scopeFactory; + _configuration = scopeFactory.CreateScope().ServiceProvider.GetRequiredService<RMUDesktopConfiguration>(); + _storageWrapper = scopeFactory.CreateScope().ServiceProvider.GetRequiredService<RMUStorageWrapper>(); + + _logger.LogInformation("Initialising MainWindow"); + + InitializeComponent(); + + _logger.LogInformation("Cache location: {}", _configuration.CacheStoragePath); + _logger.LogInformation("Data location: {}", _configuration.DataStoragePath); + + // for (int i = 0; i < 100; i++) { + // roomList.Children.Add(new RoomListEntry()); + // } + } + + // ReSharper disable once AsyncVoidMethod + protected override async void OnLoaded(RoutedEventArgs e) { + _logger.LogInformation("async onloaded override"); + var hs = await _storageWrapper.GetCurrentSessionOrPrompt(); + var rooms = await hs.GetJoinedRooms(); + foreach (var room in rooms) { + // roomList.Children.Add(new RoomListEntry(_scopeFactory, new RoomInfo(room))); + + windowContent.Push("home", new RoomListEntry() { + Room = new RoomInfo() { + Room = room + } + }); + base.OnLoaded(e); + } + } + + // public Command + // protected void LoadedCommand() { + // _logger.LogInformation("async command"); + // } +} \ No newline at end of file |