using System; using System.Threading; using Plugin.Settings; using Plugin.Settings.Abstractions; namespace Aurora.Services { public class SettingsService : BaseService { private Lazy _appSettings; private string _usernameKey = "username"; private string _defaultPortKey = "port"; public SettingsService() { } public ISettings AppSettings { get { if (_appSettings == null) { _appSettings = new Lazy(() => CrossSettings.Current, LazyThreadSafetyMode.PublicationOnly); } return _appSettings.Value; } set { _appSettings = new Lazy(() => value, LazyThreadSafetyMode.PublicationOnly); } } /// /// The user's username. This is persisted. /// /// public string Username { get { return AppSettings.GetValueOrDefault(_usernameKey, ""); } set { AppSettings.AddOrUpdateValue(_usernameKey, value); } } /// /// The default port to use. This is persisted. /// /// public int DefaultPort { get { return AppSettings.GetValueOrDefault(_defaultPortKey, 4005); } set { AppSettings.AddOrUpdateValue(_defaultPortKey, value); } } /// /// The current sessions clientId. This is assigned by the server. This is not persisted. /// /// public string ClientId { get; set; } } }