PebbleOS
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
timeline.h File Reference
#include <pbl/services/timeline/item.h>
#include <system/status_codes.h>
#include <pbl/util/iterator.h>

Data Structures

struct  TimelineIterState
 State of a timeline iterator. More...
 

Macros

#define UUID_NOTIFICATIONS_DATA_SOURCE    {0xed, 0x42, 0x9c, 0x16, 0xf6, 0x74, 0x42, 0x20, 0x95, 0xda, 0x45, 0x4f, 0x30, 0x3f, 0x15, 0xe2}
 Data source of notifications, ed429c16-f674-4220-95da-454f303f15e2.
 
#define UUID_CALENDAR_DATA_SOURCE    {0x6c, 0x6c, 0x6f, 0xc2, 0x19, 0x12, 0x4d, 0x25, 0x83, 0x96, 0x35, 0x47, 0xd1, 0xdf, 0xac, 0x5b}
 Data source of calendar pins, 6c6c6fc2-1912-4d25-8396-3547d1dfac5b.
 
#define UUID_WEATHER_DATA_SOURCE    {0x61, 0xb2, 0x2b, 0xc8, 0x1e, 0x29, 0x46, 0xd, 0xa2, 0x36, 0x3f, 0xe4, 0x9, 0xa4, 0x39, 0xff}
 Data source of weather pins, 61b22bc8-1e29-460d-a236-3fe409a439ff.
 
#define UUID_REMINDERS_DATA_SOURCE    {0x42, 0xa0, 0x72, 0x17, 0x54, 0x91, 0x42, 0x67, 0x90, 0x4a, 0xd0, 0x2a, 0x15, 0x67, 0x52, 0xb6}
 Data source of reminders, 42a07217-5491-4267-904a-d02a156752b6.
 
#define UUID_ALARMS_DATA_SOURCE    {0x67, 0xa3, 0x2d, 0x95, 0xef, 0x69, 0x46, 0xd4, 0xa0, 0xb9, 0x85, 0x4c, 0xc6, 0x2f, 0x97, 0xf9}
 Data source of alarm pins, 67a32d95-ef69-46d4-a0b9-854cc62f97f9.
 
#define UUID_HEALTH_DATA_SOURCE    {0x36, 0xd8, 0xc6, 0xed, 0x4c, 0x83, 0x4f, 0xa1, 0xa9, 0xe2, 0x8f, 0x12, 0xdc, 0x94, 0x1f, 0x8c}
 Data source of health pins, 36d8c6ed-4c83-4fa1-a9e2-8f12dc941f8c.
 
#define UUID_WORKOUT_DATA_SOURCE    {0xfe, 0xf8, 0x2c, 0x82, 0x71, 0x76, 0x4e, 0x22, 0x88, 0xde, 0x35, 0xa3, 0xfc, 0x18, 0xd4, 0x3f}
 Data source of workout pins, fef82c82-7176-4e22-88de-35a3fc18d43f.
 
#define UUID_SEND_TEXT_DATA_SOURCE    {0x08, 0x63, 0xfc, 0x6a, 0x66, 0xc5, 0x4f, 0x62, 0xab, 0x8a, 0x82, 0xed, 0x00, 0xa9, 0x8b, 0x5d}
 Data source of the Send Text app, 0863fc6a-66c5-4f62-ab8a-82ed00a98b5d.
 
#define UUID_SEND_SMS    {0x0f, 0x71, 0xaa, 0xba, 0x58, 0x14, 0x4b, 0x5c, 0x96, 0xe2, 0xc9, 0x82, 0x8c, 0x97, 0x34, 0xcb}
 Item id that lets the watch send an SMS to a phone number, 0f71aaba-5814-4b5c-96e2-c9828c9734cb.
 
#define UUID_INTERCOM_DATA_SOURCE    {0x68, 0x01, 0x06, 0x69, 0x4b, 0x38, 0x47, 0x51, 0xad, 0x04, 0x06, 0x7f, 0x1d, 0x8d, 0x2a, 0xb5}
 Data source of intercom pins, 68010669-4b38-4751-ad04-067f1d8d2ab5.
 

Typedefs

typedef struct TimelineNode TimelineNode
 Opaque node of the ordered pin list.
 

Enumerations

enum  TimelineIterDirection { TimelineIterDirectionPast , TimelineIterDirectionFuture }
 Direction of a timeline iteration. More...
 

Functions

status_t timeline_init (TimelineNode **timeline)
 Build the ordered pin list from the Pins database.
 
bool timeline_add (TimelineItem *item)
 Add a pin created on the watch to the Pins database.
 
bool timeline_add_missed_call_pin (TimelineItem *pin, uint32_t uid)
 Add a missed call pin.
 
bool timeline_remove (const Uuid *id)
 Remove a pin through BlobDB, which emits a BlobDB delete event.
 
bool timeline_exists (Uuid *id)
 Check whether a pin exists.
 
void timeline_enable_ancs_bulk_action_mode (bool enable)
 Enable or disable bulk mode for ANCS actions.
 
bool timeline_is_bulk_ancs_action_mode_enabled (void)
 Check whether bulk mode for ANCS actions is enabled.
 
void timeline_invoke_action (const TimelineItem *item, const TimelineItemAction *action, const AttributeList *attributes)
 Invoke an action of a timeline item.
 
TimelineIterDirection timeline_direction_for_item (TimelineItem *item, TimelineNode *timeline, time_t now)
 Get the direction in which a pin is shown.
 
bool timeline_nodes_equal (TimelineNode *a, TimelineNode *b)
 Compare two nodes.
 
bool timeline_get_originator_id (const TimelineItem *item, Uuid *id)
 Get the UUID of the originator of a timeline item.
 
int timeline_item_time_comparator (CommonTimelineItemHeader *new_common, CommonTimelineItemHeader *old_common, TimelineIterDirection direction)
 Compare items in Timeline order, ignoring all-day events.
 
bool timeline_item_should_show (CommonTimelineItemHeader *header, TimelineIterDirection direction)
 Check whether an item shows up in a Timeline direction, ignoring all-day events.
 
status_t timeline_iter_init (Iterator *iter, TimelineIterState *iter_state, TimelineNode **timeline, TimelineIterDirection direction, time_t timestamp)
 Start iterating over the pin list.
 
void timeline_iter_copy_state (TimelineIterState *dst_state, TimelineIterState *src_state, Iterator *dst_iter, Iterator *src_iter)
 Copy an iterator into another one.
 
void timeline_iter_deinit (Iterator *iter, TimelineIterState *iter_state, TimelineNode **head)
 Free the pin list and the iterator's current pin.
 
void timeline_iter_refresh_pin (TimelineIterState *iter_state)
 Reload the current pin from the Pins database.
 
void timeline_iter_remove_node (TimelineNode **timeline, TimelineNode *node)
 Remove a node from the pin list.
 
bool timeline_iter_remove_node_with_id (TimelineNode **timeline, Uuid *key)
 Remove the first node with an id from the pin list.
 
const char * timeline_get_private_data_source (Uuid *parent_id)
 Get the name of a private (non-app) data source such as Weather or Calendar.