Wednesday, June 1, 2011

Some terminology

Let's introduce some terminology.


Contact: High level abstraction of a Contact entry in the user's contactlist.

TimeLine: The time-ordered list of events (see image of prev post). Currently a TimeLine is always associated with a single contact, so only interactions between the user and a particular contact are shown.

Event: Item on the timeline. Its attributes are used the describe a particular event. An event could be a phone call, a short message, photo tagging, etc. Some of the common attributes are the time of the event, a message, an Intent to be fired if the user selects it, and the originator of the event (user, contact, both), which is used to display the list of events in a conversational form.

Source: The abstraction of the source which the events came from. An Event is always associated with exactly one Source. There are two kinds of sources: internal and external. Internal sources are defined and handled by the Historify application (e.g. Messaging, Telephony). External sources are defined by 3rd party app developers. External sources must be registered via the REGISTER_SOURCE Intent before use. All registered sources could be enabled or disabled by the user. Events associated with disabled sources won't show up in the timeline.

Provider: The Content Provider which stores all event data associated with a single source. Historify collects event data from the concrete providers during event aggregation. Internal sources have internal providers defined in Historify's manifest XML, while external providers are defined by 3rd party applications.

Filter: A source filter modifies the enabled/disabled state of a particular Source. The aim is to let the user customize the event aggregation behaviour for a particular contact. The user could define filters for any contact-source pairs, however, when Historify aggregates events data on the timeline, only the filters defined for the currenly shown contact are taken into account.*

* That's why the diagram shows that a Source could only have one Filter.

No comments:

Post a Comment