Skip to content

Commit 6230cfd

Browse files
committed
Avoid crash if settings cannot be deserialized
1 parent 0c5192e commit 6230cfd

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

WpfApp/AboutWindow.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,15 @@ private void BtnCheckUpdate_Click(object sender, RoutedEventArgs e)
7373
private void Window_Loaded(object sender, RoutedEventArgs e)
7474
{
7575
AutoUpdateToggleButton.IsChecked = true;
76-
if (AppSettings.GetSingletonInstance().IsAutoUpdateEnabled)
76+
if ((AppSettings.GetSingletonInstance()?.IsAutoUpdateEnabled).GetValueOrDefault(false))
7777
{
7878
CheckUpdate();
7979
}
8080
}
8181

8282
private void AutoUpdateToggleButton_Click(object sender, RoutedEventArgs e)
8383
{
84-
var settings = AppSettings.GetSingletonInstance();
84+
var settings = AppSettings.GetSingletonInstance() ?? new AppSettings();
8585
settings.IsAutoUpdateEnabled = AutoUpdateToggleButton.IsChecked.GetValueOrDefault(false);
8686
if (settings.IsAutoUpdateEnabled)
8787
{

WpfApp/Domain/AboutWindowViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public AboutWindowViewModel()
3434
{
3535
GetInfoFromAssembly();
3636

37-
_settings = AppSettings.GetSingletonInstance();
37+
_settings = AppSettings.GetSingletonInstance() ?? new AppSettings();
3838
_autoUpdate = new AutoUpdate();
3939

4040
Libraries = new ObservableCollection<Library>(new[]

WpfApp/Domain/MainWindowViewModel.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public MainWindowViewModel(ISnackbarMessageQueue snackbarMessageQueue)
3939
lang = "en-US";
4040
}
4141

42-
var settings = UserAppSettings.GetSingletonInstance();
42+
var settings = UserAppSettings.GetSingletonInstance() ?? new UserAppSettings();
4343
settings.Language = lang;
4444
settings.SaveToFile();
4545

@@ -135,20 +135,20 @@ public static void ModifyAndSaveTheme(bool isDarkTheme)
135135
{
136136
ModifyTheme(isDarkTheme);
137137

138-
var settings = UserAppSettings.GetSingletonInstance();
138+
var settings = UserAppSettings.GetSingletonInstance() ?? new UserAppSettings();
139139
settings.UseDarkTheme = isDarkTheme;
140140
settings.SaveToFile();
141141
}
142142

143143
public void InitFromSettings()
144144
{
145145
var userSettings = UserAppSettings.GetSingletonInstance();
146-
if (userSettings.UseDarkTheme)
146+
if (userSettings != null && userSettings.UseDarkTheme)
147147
{
148148
IsDarkMode = userSettings.UseDarkTheme;
149149
}
150150
var settings = AppSettings.GetSingletonInstance();
151-
if (settings.IsAutoUpdateEnabled)
151+
if (settings != null && settings.IsAutoUpdateEnabled)
152152
{
153153
Application.Current.Dispatcher.BeginInvoke(async () =>
154154
{

0 commit comments

Comments
 (0)