Beispiel #1
0
        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();
        }
Beispiel #4
0
 public string GetString(string key, string defaultValue = null)
 => UserDefaults [key = MakeKey(key)] == null ? defaultValue : UserDefaults.StringForKey(key);