Requirement |
Description |
Identifiers |
Identifiers will be provided for messages, message (MIME) parts, folders and accounts, using a different type for each. Identifiers satisfy the following requirements:
- An identifier can be invalid which indicates the object identified no longer exists in the messaging store.
- An identifier will be unique within the scope of the message store.
- Identifiers can be compared for equality.
- Identifiers can be created from and converted to persistent string representations.
|
MIME content inspection |
The MIME interface provides functions to:
- Return the content type, subtype, charset, and suggested filename.
- Return any type of content data (text, image, audio, video, application, message), into either a QByteArray or QDataStream.
- Inspect a MIME part to determine an indication of the size of the part on the originating server.
- Inspect a MIME part to determine if the entirety of the part is available on the device.
|
Supported message types |
QtMobility messaging library supports SMS, MMS, Email and Instant Message message types. |
Message creation and modification functionality |
Messages can be created or modified piece by piece by setting the:
- Type to SMS, MMS, Email, or XMPP.
- Address properties, From, To, Cc, & Bcc. An address consists of a recipient string, and a type (Telephony, Email, or XMPP).
- Other basic properties, subject, Body, Date, Received Date, Status flags (Read, HasAttachments, Incoming, Removed), Priority (High, Normal, or Low).
- List of attachments by giving source file names.
- A single modifiable list of preferred charsets to be used to automatically encode text (QString) content data, namely address properties, subject, and body.
- A message specific charset to use for encoding text content data that overrides the preferred list of charsets.
- StandardFolder that contains the message (Inbox, Outbox, Drafts, Sent, or Trash).
|
Message operations |
The message interface provides functions to:
- Create a message from transmission format.
- Convert the message to transmission format.
- Determine if a message object has been modified since it was last constructed.
- Return the size of the entire message on the originating server.
- Return the value of any modifiable property.
|
Messaging store singleton |
Provide access to a messaging store via a singleton interface that:
- Supports concurrent access.
- Can be used to add, delete and update messages.
- Can be used to query and count messages and accounts. The maximum size of the working set of ids kept in memory when evaluating non atomic queries can be set. An atomic query is one that only requires a single call to the native messaging system to evaluate.
- With an identifier can be used to construct a read/write message object, or a read only folder or account object.
- Allows inspection of the last error that has occurred if any.
- Allows notification of message additions, removals and updates that can be enabled/disabled at runtime.
|
Account inspection functionality |
Functions exist to return the value of the following account properties identifier, name, from address, signature, types of messages handled. |
Message sorting fields |
The store can sort messages on the type, sender, recipients, subject, size, time stamp, reception time stamp, and priority message properties. |
Message filtering fields |
The store can filter messages on all sortable message fields, and the identifier, and parent account identifier message properties. |
Account sorting fields |
The store can sort accounts on the account name property. |
Account filtering properties |
The store can filter accounts on the account name, identifier and from address properties. |
Filter and Sorting operations |
Filters can be combined with the boolean &, | and ~ operators and nested expressions. Multiple sort fields can be used to define sorting precedence. |
Query slices support |
Store queries return a list of identifiers, or a 'slice' of identifiers using offset and limit parameters. |
Asynchronous native services functionality |
An asynchronous API is provided to utilize native messaging services. State (InProgress, Successful, Failed) change is reported via signals. A function exists to inspect the last error if any. The following native services are provided:
- Send a message
- Launch a native message composer, with pre-populated fields, for a specific message type or for a message with no type defined.
- Show a message with a given identifier using the default messaging application for the platform.
- Retrieve a message or message (MIME) part.
- Sync changes to external servers that have been queued by add, update, and remove store operations.
|
Default accounts |
A function exists that returns the default account for handling a type of message. |
Message response |
The message interface provides functions to create a message:
- That is a response to the sender of the message.
- That is a response to all participants of the message.
- That is a forward of the message.
|