public static ITrackableEvent ToTrackableEvent(this WidgetTrackingEvent e) { switch (e.EventType) { case WidgetTrackingEventType.Error: return(new SiriIntentErrorTrackingEvent(e.Parameters[WidgetErrorEventKeys.Message])); case WidgetTrackingEventType.StartTimer: return(new StartTimeEntryEvent( TimeEntryStartOrigin.Widget, true, false, false, 0, false, true )); case WidgetTrackingEventType.StopTimer: return(new StopTimerEntryEvent(TimeEntryStopOrigin.Widget)); default: return(null); } }
public void AddWidgetTrackingEvent(WidgetTrackingEvent e) { var currentEvents = (NSMutableArray)getTrackableEvents(widgetInstalledKey).MutableCopy(); currentEvents.Add(e); userDefaults[siriTrackingEventsKey] = NSKeyedArchiver.ArchivedDataWithRootObject(currentEvents); userDefaults.Synchronize(); }
public async Task <ITimeEntry> StartTimeEntry(TimeEntry timeEntry) { try { var createdTimeEntry = await togglApi.TimeEntries .Create(timeEntry) .ConfigureAwait(false); SharedStorage.Instance.SetNeedsSync(true); SharedStorage.Instance.AddWidgetTrackingEvent(WidgetTrackingEvent.StartTimer()); return(createdTimeEntry); } catch (Exception e) { SharedStorage.Instance.AddWidgetTrackingEvent(WidgetTrackingEvent.Error(e.Message)); throw; } }
public async Task StopRunningTimeEntry() { try { await togglApi.TimeEntries .GetAll() .ToObservable() .Select(getRunningTimeEntry) .Select(stopTimeEntry) .FirstAsync(); SharedStorage.Instance.SetNeedsSync(true); SharedStorage.Instance.AddWidgetTrackingEvent(WidgetTrackingEvent.StopTimer()); } catch (Exception e) { SharedStorage.Instance.AddWidgetTrackingEvent(WidgetTrackingEvent.Error(e.Message)); throw; } }