WebAPI/LogAPI: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 13: Line 13:
== WebIDL ==
== WebIDL ==


interface LogManager : EventTarget {
interface LogManager : EventTarget  
{
     DOMRequest save(LogEntry entry);
     DOMRequest save(LogEntry entry);
     DOMRequest delete(DOMString entryId);
     DOMRequest delete(DOMString entryId);
Line 20: Line 21:
   attribute Function onentryadded;
   attribute Function onentryadded;
};
};
interface LogIterator {
interface LogIterator  
{
   DOMRequest next(optional unsigned short n);
   DOMRequest next(optional unsigned short n);
   DOMRequest advance(unsigned short count);
   DOMRequest advance(unsigned short count);
};
};
dictionary LogOptions {
dictionary LogOptions  
{
   attribute unsigned long maxRecords;
   attribute unsigned long maxRecords;
   attribute DOMString contactId;
   attribute DOMString contactId;
};
};
dictionary LogFindOptions : LogOptions {
dictionary LogFindOptions : LogOptions  
{
   attribute Date from;
   attribute Date from;
   attribute Date to;
   attribute Date to;
   attribute DOMString service;
   attribute DOMString service;
};
};
interface LogEntryProperties {
interface LogEntryProperties  
{
   attribute DOMString type;                      // possible values: ['incoming', 'outgoing', 'missing']
   attribute DOMString type;                      // possible values: ['incoming', 'outgoing', 'missing']
   attribute DOMString[] contactId;            // ContactId
   attribute DOMString[] contactId;            // ContactId
Line 44: Line 49:
};
};
[Constructor(LogEntryProperties properties)]
[Constructor(LogEntryProperties properties)]
interface LogEntry : LogEntryProperties {
interface LogEntry : LogEntryProperties  
{
   readonly attribute DOMString id;
   readonly attribute DOMString id;
   readonly attribute DOMTimestamp timestamp;                  // When this happened
   readonly attribute DOMTimestamp timestamp;                  // When this happened
};
};

Revision as of 18:43, 25 April 2012

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 save(LogEntry entry);
   DOMRequest delete(DOMString entryId);
   DOMRequest clear(LogClearOptions coptions);
   LogIterator find(LogFindOptions options);
  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(LogEntryProperties properties)] interface LogEntry : LogEntryProperties {

  readonly attribute DOMString id;
  readonly attribute DOMTimestamp timestamp;                  // When this happened

};