예제 #1
0
        void Set <T>(string key, T value)
        {
            lock (locker)
            {
                switch (value)
                {
                case string s:
                    UserDefaults.SetString(s, key);
                    break;

                case int i:
                    UserDefaults.SetInt(i, key);
                    break;

                case bool b:
                    UserDefaults.SetBool(b, key);
                    break;

                case long l:
                    var valueString = Convert.ToString(value, CultureInfo.InvariantCulture);
                    UserDefaults.SetString(valueString, key);
                    break;

                case double d:
                    UserDefaults.SetDouble(d, key);
                    break;

                case float f:
                    UserDefaults.SetFloat(f, key);
                    break;
                }
            }
        }
예제 #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            const string prefix = "com.toggl.timer";

            source.OnStartStop += (sender, e) => {
                if (WidgetDisabled)
                {
                    return;
                }
                WidgetDisabled = true;
                UIApplication.SharedApplication.OpenUrl(new NSUrl(prefix + "://" + TodayUrlPrefix + "/" + StartEntryUrlPrefix));
            };

            source.OnContinue += (sender, e) => {
                if (WidgetDisabled)
                {
                    return;
                }
                WidgetDisabled = true;
                var id = string.IsNullOrEmpty(source.SelectedCellId) ? new Guid().ToString() : source.SelectedCellId;
                UserDefaults.SetString(id, StartedEntryKey);
                UIApplication.SharedApplication.OpenUrl(new NSUrl(prefix + "://" + TodayUrlPrefix + "/" + ContinueEntryUrlPrefix));
            };

            source.Controller = this;
            tableView.Source  = source;
            tableView.RegisterClassForCellReuse(typeof(WidgetCell), WidgetCell.WidgetProjectCellId);
            tableView.Delegate = new TableViewDelegate();

            openAppBtn.TouchUpInside += (sender, e) => {
                if (WidgetDisabled)
                {
                    return;
                }
                WidgetDisabled      = true;
                openAppBtn.IsActive = false;
                UIApplication.SharedApplication.OpenUrl(new NSUrl(prefix + "://" + TodayUrlPrefix + "/"));
            };

            UpdateContent();

            UpdateTimeValue();

            if (isRunning)
            {
                // Start to check time
                Timer.Elapsed += (sender, e) => InvokeOnMainThread(UpdateTimeValue);
                Timer.Start();
            }
        }
예제 #3
0
 public void Set(string key, string value)
 => Set(key, () => UserDefaults.SetString(value, MakeKey(key)));