WebAPI/LogAPI

From MozillaWiki
< WebAPI
Revision as of 18:10, 25 April 2012 by Jmcf (talk | contribs)
Jump to navigation Jump to search

Use Cases

To record the history of user activity with the device, particularly with communication services (Phone Calls, Messages, Social Networks, etc.)

Consumers

  • Comms Log Application (Global for the user and per-contact)

Producers

  • Dialer, SMS, e-mail, Facebook, Twitter, ...

WebIDL

interface LogManager : EventTarget {
    DOMRequest add(LogEntry entry);
    DOMRequest delete(DOMString entryId);
    DOMRequest clear(LogClearOptions coptions);
    LogIterator find(LogFindOptions options);

   DOMRequest update(LogEntry

   attribute Function onentryadded;
};

interface LogIterator {
  DOMRequest next(optional unsigned short n);
  DOMRequest advance(unsigned short count);
};

dictionary LogOptions {
  attribute unsigned long maxRecords;
  attribute DOMString contactId;
};

dictionary LogFindOptions : LogOptions {
   attribute Date from;
   attribute Date to;
   attribute DOMString service;
};

interface LogEntryProperties {
   attribute DOMString type;                       // possible values: ['incoming', 'outgoing', 'missing']
   attribute DOMString[] contactId;             // ContactId
   attribute DOMString[] tel;                       // Tel number if not already in contacts
   attribute DOMString objectId;                // Object id (for example SMS message on the SMS database)
   attribute DOMString service;                  // oneOf ['SMS', 'Telephony', 'Facebook', 'Twitter'] 
   attribute DOMString title;             
   attribute DOMString description;
   attribute any extra;                                // Any extra data to be used by applications
};

[Constructor(in LogEntryProperties properties)]
interface LogEntry : LogEntryProperties {
   readonly attribute DOMString id;
   readonly attribute DOMTimestamp timestamp;                  // When this happened
};