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);
            }
        }
Esempio n. 2
0
        public void AddWidgetTrackingEvent(WidgetTrackingEvent e)
        {
            var currentEvents = (NSMutableArray)getTrackableEvents(widgetInstalledKey).MutableCopy();

            currentEvents.Add(e);

            userDefaults[siriTrackingEventsKey] = NSKeyedArchiver.ArchivedDataWithRootObject(currentEvents);
            userDefaults.Synchronize();
        }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
        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;
            }
        }