KDE PIM/Akonadi Next/Legacy Akonadi Compatibility Layer

From KDE Community Wiki
Revision as of 19:00, 9 December 2014 by Cmollekopf (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

A compatibility layer is required in order to keep the current API working. This includes the Akonadi:: jobs and Akonadi::Monitor.

  • akonadi provided a stable id for each entity, that also didn't change over moves.
  • since the new akonadi no longer provides this, especially not accross resources, a persistent mapping is required.

Akonadi::Entity::Id <=> Resource+Id

Example usecase:

  • Mark as read + filter => Inter-resource move to local folder. The editor still holds the id while viewing.
  • Collection-Id's in configurations

Compatibility notes:

  • Tags/Relations now need a target resource on creation. This is a change from the current situation where you can just create a tag, and every resource can synchronize it. It requires a bit more work but results also in a more predictable system, which we'll also need if we want to support different tag storage locations (shared tag set in a shared folder).