From 28bc479ee47a23a9edbbac808f731540d0d8bad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= Date: Wed, 22 Feb 2023 17:47:12 +0100 Subject: [PATCH] Fix Font NullReferenceException --- .../FileTime.GuiApp.Font/Services/FontService.cs | 6 +++--- .../FileTime.GuiApp/ViewModels/MainWindowViewModel.cs | 10 +++------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/GuiApp/Avalonia/FileTime.GuiApp.Font/Services/FontService.cs b/src/GuiApp/Avalonia/FileTime.GuiApp.Font/Services/FontService.cs index 42b9b4f..6b18c5f 100644 --- a/src/GuiApp/Avalonia/FileTime.GuiApp.Font/Services/FontService.cs +++ b/src/GuiApp/Avalonia/FileTime.GuiApp.Font/Services/FontService.cs @@ -9,7 +9,7 @@ namespace FileTime.GuiApp.Services; public class FontService : IFontService { private readonly IOptionsMonitor _fontConfiguration; - + private readonly BehaviorSubject _mainFont = new(null); public IObservable MainFont => _mainFont.DistinctUntilChanged(); @@ -17,7 +17,7 @@ public class FontService : IFontService { _fontConfiguration = fontConfiguration; fontConfiguration.OnChange(UpdateFonts); - + UpdateFonts(fontConfiguration.CurrentValue, null); } @@ -29,6 +29,6 @@ public class FontService : IFontService public string? GetMainFont() { var installedFonts = FontManager.Current.GetInstalledFontFamilyNames().ToList(); - return _fontConfiguration.CurrentValue.Main.FirstOrDefault(f => installedFonts.Contains(f)); + return _fontConfiguration.CurrentValue.Main.Find(installedFonts.Contains); } } \ No newline at end of file diff --git a/src/GuiApp/Avalonia/FileTime.GuiApp/ViewModels/MainWindowViewModel.cs b/src/GuiApp/Avalonia/FileTime.GuiApp/ViewModels/MainWindowViewModel.cs index 29896f9..2d1c238 100644 --- a/src/GuiApp/Avalonia/FileTime.GuiApp/ViewModels/MainWindowViewModel.cs +++ b/src/GuiApp/Avalonia/FileTime.GuiApp/ViewModels/MainWindowViewModel.cs @@ -1,16 +1,12 @@ -using System.Reflection; +using System.Reactive.Linq; +using System.Reflection; using Avalonia.Input; using FileTime.App.Core.Services; using FileTime.App.Core.UserCommand; -using FileTime.App.Core.ViewModels; using FileTime.Core.Models; -using FileTime.Core.Services; using FileTime.Core.Timeline; using FileTime.GuiApp.Services; using FileTime.Providers.Local; -using InitableService; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using MvvmGen; @@ -31,7 +27,7 @@ namespace FileTime.GuiApp.ViewModels; public partial class MainWindowViewModel : IMainWindowViewModelBase { public bool Loading => false; - public IObservable MainFont => _fontService.MainFont; + public IObservable MainFont => _fontService.MainFont.Select(x => x ?? ""); public IGuiAppState AppState => _appState; public string Title { get; private set; }