From 0e6fbf236ac480df749430bfb5a81f27519ffb92 Mon Sep 17 00:00:00 2001 From: Vic <10308169+VictoriousRaptor@users.noreply.github.com> Date: Thu, 24 Nov 2022 15:29:05 +0800 Subject: [PATCH] Avoid new CultureInfo every second --- Flow.Launcher/ViewModel/MainViewModel.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index 29aef88fd..109cfc81e 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -67,7 +67,14 @@ namespace Flow.Launcher.ViewModel { if (args.PropertyName == nameof(Settings.WindowSize)) { - OnPropertyChanged(nameof(MainWindowWidth)); + } + switch (args.PropertyName) { + case nameof(Settings.WindowSize): + OnPropertyChanged(nameof(MainWindowWidth)); + break; + case nameof(Settings.Language): + Culture = new CultureInfo(Settings.Language); + break; } }; @@ -99,6 +106,8 @@ namespace Flow.Launcher.ViewModel RegisterClockAndDateUpdateAsync(); SetOpenResultModifiers(); + + Culture = new CultureInfo(Settings.Language); } private void RegisterViewUpdate() @@ -334,8 +343,8 @@ namespace Flow.Launcher.ViewModel public Settings Settings { get; } public string ClockText { get; private set; } public string DateText { get; private set; } + public CultureInfo Culture { get; set; } - public CultureInfo cultureInfo => new CultureInfo(Settings.Language); private async Task RegisterClockAndDateUpdateAsync() { var timer = new PeriodicTimer(TimeSpan.FromSeconds(1)); @@ -343,11 +352,12 @@ namespace Flow.Launcher.ViewModel while (await timer.WaitForNextTickAsync().ConfigureAwait(false)) { if (Settings.UseClock) - ClockText = DateTime.Now.ToString(Settings.TimeFormat, cultureInfo); + ClockText = DateTime.Now.ToString(Settings.TimeFormat, Culture); if (Settings.UseDate) - DateText = DateTime.Now.ToString(Settings.DateFormat, cultureInfo); + DateText = DateTime.Now.ToString(Settings.DateFormat, Culture); } } + public ResultsViewModel Results { get; private set; } public ResultsViewModel ContextMenu { get; private set; }