diff --git a/BusLane.csproj b/BusLane.csproj
index e3075f3..1433e11 100644
--- a/BusLane.csproj
+++ b/BusLane.csproj
@@ -31,7 +31,7 @@
-
+
diff --git a/ViewModels/SettingsViewModel.cs b/ViewModels/SettingsViewModel.cs
index 674282a..9a0d892 100644
--- a/ViewModels/SettingsViewModel.cs
+++ b/ViewModels/SettingsViewModel.cs
@@ -8,6 +8,7 @@ public partial class SettingsViewModel : ViewModelBase
{
private readonly Action _onClose;
private string _originalTheme = "Light";
+ private bool _isLoading;
[ObservableProperty] private bool _confirmBeforeDelete = true;
[ObservableProperty] private bool _confirmBeforePurge = true;
@@ -31,23 +32,36 @@ public SettingsViewModel(Action onClose)
partial void OnThemeChanged(string value)
{
+ // Skip theme preview during initial load
+ if (_isLoading)
+ return;
+
// Apply theme immediately as preview when user changes it
App.Instance?.ApplyTheme(value);
}
private void LoadSettings()
{
- // Load settings from preferences/storage
- ConfirmBeforeDelete = Preferences.ConfirmBeforeDelete;
- ConfirmBeforePurge = Preferences.ConfirmBeforePurge;
- AutoRefreshMessages = Preferences.AutoRefreshMessages;
- AutoRefreshIntervalSeconds = Preferences.AutoRefreshIntervalSeconds;
- DefaultMessageCount = Preferences.DefaultMessageCount;
- ShowDeadLetterBadges = Preferences.ShowDeadLetterBadges;
- EnableMessagePreview = Preferences.EnableMessagePreview;
-
- // Set theme field directly to avoid triggering OnThemeChanged during load
- _theme = Preferences.Theme;
+ try
+ {
+ _isLoading = true;
+
+ // Load settings from preferences/storage
+ ConfirmBeforeDelete = Preferences.ConfirmBeforeDelete;
+ ConfirmBeforePurge = Preferences.ConfirmBeforePurge;
+ AutoRefreshMessages = Preferences.AutoRefreshMessages;
+ AutoRefreshIntervalSeconds = Preferences.AutoRefreshIntervalSeconds;
+ DefaultMessageCount = Preferences.DefaultMessageCount;
+ ShowDeadLetterBadges = Preferences.ShowDeadLetterBadges;
+ EnableMessagePreview = Preferences.EnableMessagePreview;
+
+ // Use the generated property instead of the field
+ Theme = Preferences.Theme;
+ }
+ finally
+ {
+ _isLoading = false;
+ }
}
[RelayCommand]