T Get <T>(string key, T defaultValue) { object value = null; lock (locker) { if (UserDefaults[key] == null) { return(defaultValue); } switch (defaultValue) { case int i: value = (int)(nint)UserDefaults.IntForKey(key); break; case bool b: value = UserDefaults.BoolForKey(key); break; case long l: var savedLong = UserDefaults.StringForKey(key); value = Convert.ToInt64(savedLong, CultureInfo.InvariantCulture); break; case double d: value = UserDefaults.DoubleForKey(key); break; case float f: value = UserDefaults.FloatForKey(key); break; case string s: // the case when the string is not null value = UserDefaults.StringForKey(key); break; default: // the case when the string is null if (typeof(T) == typeof(string)) { value = UserDefaults.StringForKey(key); } break; } } return((T)value); }
private void UpdateTimeValue() { // Periodically update content from UserDefaults var timeValue = UserDefaults.StringForKey(MillisecondsKey); if (!string.IsNullOrEmpty(timeValue)) { var cell = (WidgetCell)tableView.CellAt(NSIndexPath.FromRowSection(0, 0)); if (cell != null) { cell.TimeValue = isAppOnBackground ? string.Empty : UserDefaults.StringForKey(MillisecondsKey); } } }
private void UpdateContent() { // Check if user is logged if (!isUserLogged || !isAppActive) { tableView.Hidden = true; openAppView.Hidden = false; return; } isRunning = false; WidgetDisabled = false; // Get saved entries var timeEntryJson = UserDefaults.StringForKey(TimeEntriesKey); if (timeEntryJson != string.Empty) { entries.Clear(); entries.AddRange(Newtonsoft.Json.JsonConvert.DeserializeObject <List <WidgetEntryData> > (timeEntryJson)); } if (entries.Count > 0) { // Check running state foreach (var item in entries) { isRunning = isRunning || item.IsRunning; } if (!isRunning) { // Add empty cell at top var emptyEntry = new WidgetEntryData { IsEmpty = true }; entries.Insert(0, emptyEntry); entries.RemoveAt(entries.Count - 1); } } else { entries.Add(new WidgetEntryData { IsEmpty = true }); } tableView.ReloadData(); }
public string GetString(string key, string defaultValue = null) => UserDefaults [key = MakeKey(key)] == null ? defaultValue : UserDefaults.StringForKey(key);