Meego Wiki
Views

Architecture/planning/evolution-data-server/QtContacts storage plugin

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(QtContacts-EDS)
(QtContacts-EDS)
Line 15: Line 15:
** QContactOnlineAccount is not interoperable with libebook/EDS (not direct equivalent is available in vCard)
** QContactOnlineAccount is not interoperable with libebook/EDS (not direct equivalent is available in vCard)
** There does not seem to be any equivalent for X-EVOLUTION-MANAGER in QtContacts, no mapping is done for this extension
** There does not seem to be any equivalent for X-EVOLUTION-MANAGER in QtContacts, no mapping is done for this extension
-
** QContactFamily::FieldChildren is not interoperable with libebook/EDS (X-CHILDREN extension is not supported by libebook)
 
** QContactOrganization::FieldDepartment is not fully interoperable with libebook/EDS (libebook can only parse one department)
** QContactOrganization::FieldDepartment is not fully interoperable with libebook/EDS (libebook can only parse one department)
** QContactOrganization does not have any API for binary (QImage) organization logo (Only URL: QContactOrganization::FieldLocation) but libebook supports both
** QContactOrganization does not have any API for binary (QImage) organization logo (Only URL: QContactOrganization::FieldLocation) but libebook supports both
** QContactThumbnail does not have any API for thumbnail URLs (only binary/QImage) but libebook supports both
** QContactThumbnail does not have any API for thumbnail URLs (only binary/QImage) but libebook supports both
 +
** Some details are not interoperable with libebook: QContactGender, QContactFamily::FieldChildren (X-CHILDREN), QContactGlobalPresence, QContactFavorite, QContactHobby, QContactPresence, QContactRingtone, QContactSyncTarget.
** TODO: complete list
** TODO: complete list
* change notifications (added/updated/removed)
* change notifications (added/updated/removed)

Revision as of 10:09, 2 May 2011

QtContacts-EDS

Can be based on [existing Harmattan EDS plugin], which does not work as-is because of Nokia-specific API extensions.

Necessary changes:

  • avoid ID mapping because it requires reading all contacts at startup:
    • must change EDS to use 32 bit integers as local IDs for that (patch ready)
  • convert between QtContacts and vCard using QtVersit, with EDS specific properties and including custom properties for QtContactDetails which have no other mapping to vCard (same approach as in SyncEvolution QtContacts backend)

Goals for initial milestone:

  • full support for all QContactDetails, including custom ones, but with some limitations:
    • additional fields of details which map to well-known vCard properties (full name, address) cannot be stored if they have no corresponding representation in vCard
      • e.g, QContactOrganization::FieldLocation
    • QContactGeoLocation detail is not interoperable with libebook/EDS because QtVersit reverses latitude/longitude in the vCard [QTMOBILITY-1589]
    • QContactOnlineAccount is not interoperable with libebook/EDS (not direct equivalent is available in vCard)
    • There does not seem to be any equivalent for X-EVOLUTION-MANAGER in QtContacts, no mapping is done for this extension
    • QContactOrganization::FieldDepartment is not fully interoperable with libebook/EDS (libebook can only parse one department)
    • QContactOrganization does not have any API for binary (QImage) organization logo (Only URL: QContactOrganization::FieldLocation) but libebook supports both
    • QContactThumbnail does not have any API for thumbnail URLs (only binary/QImage) but libebook supports both
    • Some details are not interoperable with libebook: QContactGender, QContactFamily::FieldChildren (X-CHILDREN), QContactGlobalPresence, QContactFavorite, QContactHobby, QContactPresence, QContactRingtone, QContactSyncTarget.
    • TODO: complete list
  • change notifications (added/updated/removed)
  • mapping of QtContacts filters to EDS queries, with unsupported filters implemented by QtContacts after retrieving contacts (slower than filtering in EDS daemon)
    • TODO: complete list of native searches
  • change notifications via ebook view: created when opened, initial data dump ignored (performance problem!), report all following changes

Other limitations:

  • The engine is not currently thread-safe: the client must ensure thread-safety on its end

Goals for later milestones:

  • error handling
  • performance
Personal tools