diff --git a/Assets/RothenburgAR/Scripts/Common/SettingsManager.cs b/Assets/RothenburgAR/Scripts/Common/SettingsManager.cs index 8e97707..e493e36 100644 --- a/Assets/RothenburgAR/Scripts/Common/SettingsManager.cs +++ b/Assets/RothenburgAR/Scripts/Common/SettingsManager.cs @@ -8,14 +8,14 @@ namespace RothenburgAR.Common { public bool? IsInitialized { get; private set; } - internal class Settings + public class AppSettings { public string Language { get; set; } - public FontsizeSetting Fontsize { get; set; } - public int ColorschemeID { get; set; } + public FontsizeSetting? Fontsize { get; set; } + public int? ColorschemeID { get; set; } } - private Settings settings; + public AppSettings Settings { get; private set; } public void Start() { @@ -23,28 +23,32 @@ namespace RothenburgAR.Common { //load settings file into settings object if existent var json = File.ReadAllText(PathHelper.SettingsFilePath); - settings = JsonConvert.DeserializeObject(json); - - LanguageManager.Instance.CurrentLanguageKey = settings.Language; - UIColorSchemeManager.Instance.SetUiColorScheme(settings.ColorschemeID); - FontsizeManager.Instance.CurrentFontsizeSetting = settings.Fontsize; + Settings = JsonConvert.DeserializeObject(json); IsInitialized = true; + + if (Settings.Language != null) + LanguageManager.Instance.CurrentLanguageKey = Settings.Language; + + if (Settings.ColorschemeID.HasValue) + UIColorSchemeManager.Instance.SetUiColorScheme(Settings.ColorschemeID.Value); + + if (Settings.Fontsize.HasValue) + FontsizeManager.Instance.CurrentFontsizeSetting = Settings.Fontsize.Value; + + if (Settings.Language == null || !Settings.ColorschemeID.HasValue || !Settings.Fontsize.HasValue) + IsInitialized = false; } else { - settings = new Settings(); + Settings = new AppSettings(); IsInitialized = false; } } public void PersistSettings() { - settings.Language = LanguageManager.Instance.CurrentLanguageKey; - settings.ColorschemeID = UIColorSchemeManager.Instance.CurrentColorSchemeID; - settings.Fontsize = FontsizeManager.Instance.CurrentFontsizeSetting; - - var json = JsonConvert.SerializeObject(settings); + var json = JsonConvert.SerializeObject(Settings); File.WriteAllText(PathHelper.SettingsFilePath, json); } } diff --git a/Assets/RothenburgAR/Scripts/UI/ColorSelectViewBehaviour.cs b/Assets/RothenburgAR/Scripts/UI/ColorSelectViewBehaviour.cs index ccd98c7..f8e9fa4 100644 --- a/Assets/RothenburgAR/Scripts/UI/ColorSelectViewBehaviour.cs +++ b/Assets/RothenburgAR/Scripts/UI/ColorSelectViewBehaviour.cs @@ -12,6 +12,9 @@ namespace RothenburgAR.UI void Start() { + if (SettingsManager.Instance.Settings.ColorschemeID.HasValue && UIManager.Instance.StartingUp) + SwitchToFontsizeSelectView(); + CreateColorSelectionCircles(); } @@ -27,7 +30,9 @@ namespace RothenburgAR.UI selectionCircle.GetComponentInChildren