ICMessageStore

This interface defines the methods used to persist and retrieve data related to In-App Messages from an underlying data persistence mechanism. The message store capability is enabled by passing an ICMessageStore implementation to the SDK via ICMessaging.setMessageStore.

Implementors of the interface should ensure they comply with the intentions of each method as documented below.

Methods:

deleteAll


Deletes all data from the store.

  Syntax: boolean deleteAll()

  Return Value: true if the operation is successful, otherwise false

deleteMessage


Deletes a single message that matches the provided transaction id.

  Syntax: boolean deleteMessage(String transactionId)

Parameters

Parameter

Type

Description

transactionId

String

The transactionId of the message that should be deleted

  Return Value: true if the message was deleted otherwise false.

deleteThread


Deletes a single thread that matches the provided thread id.

  Syntax: boolean deleteThread(String threadId)

Parameters

Parameter

Type

Description

threadId

String

The id of the thread to be deleted

  Return Value: true if the thread was deleted, otherwise false.

getMessageCount


Gets the total count of messages that belong to the provided thread id.

  Syntax: int getMessageCount(String threadId)

Parameters

Parameter

Type

Description

threadId

String

The id of the thread whose message count should be returned.

  Return Value: The count of messages contained within the store for the provided thread id.

getThreadCount


Gets the total number of threads contained within the store.

  Syntax: int getThreadCount()

  Return Value:The count of threads contained within the store.

getUnreadMessageCount

Get the total count of unread messages that are contained within the store for the provided thread id.

  Syntax: long getUnreadMessageCount(String threadId)

Parameters

Parameter

Type

Description

threadId

String

The id of the thread whose unread message count should be returned.

  Return Value: The count of unread messages contained within the store for the provided thread id.

getUnreadThreadCount


Gets the total number of unread threads contained within the store. A thread is considered as unread if it has at least one unread message.

  Syntax: int getUnreadThreadCount()

  Return Value:The count of unread threads contained within the store.

loadMessage


Loads a single ICMessage from the store that matches the provided transaction id.

  Syntax: ICMessage loadMessage(String transactionId)

Parameters

Parameter

Type

Description

transactionId

String

The transaction id of the message to be retrieved from the store

  Return Value: An ICMessage instance if a match exists within the store, otherwise null

loadMessages


Loads an array of [ICMessage](https://developers.imiconnect.io/docs/icmessage) that match the provided parameters. The result set is ordered newest to oldest.

  Syntax: ICMessage[] loadMessages(String threadId, Date submittedBefore, Date submittedAfter, int limit)

Parameters

Parameter

Type

Description

threadId

String

The id of the thread to which the messages must belong

submittedBefore

Date

Filters the result set to contain messages whose submittedAt date is before the specified date. If a null value is passed, the behavior should be similar to passing the current device date.

submittedAfter

Date

Filters the result set to contain messages whose submittedAt date is after the specified date. If a null value is passed, the behavior should be similar to passing the current device date.

limit

int

Limits the number of messages returned in the result set.

  Return Value: An array of [ICMessage](https://developers.imiconnect.io/docs/icmessage) instances that match the provided parameters.

loadMessages


Loads an array of [ICMessage](https://developers.imiconnect.io/docs/icmessage) that match the provided parameters. The result set is ordered newest to oldest.

  Syntax: ICMessage[] loadMessages(String threadId, Date submittedBefore, int limit)

Parameters

Parameter

Type

Description

threadId

String

The id of the thread to which the messages must belong

submittedBefore

Date

Filters the result set to contain messages whose submittedAt date is before the specified date. If a null value is passed, the behavior should be similar to passing the current device date.

limit

int

Limits the number of messages returned in the result set.

  Return Value: An array of [ICMessage](https://developers.imiconnect.io/docs/icmessage) instances that match the provided parameters.

loadThread


Loads a single [ICThread](https://developers.imiconnect.io/docs/icthread) that matches the provided id.

   Syntax: ICThread[] loadThread(String threadId)

Parameters

Parameterq

Type

Descriptioin

threadId

String

The id of the thread to be retrieved

  Return Value: Returns an [ICThread](https://developers.imiconnect.io/docs/icthread) instance if a match exists within the store, otherwise null


Loads an array of [ICThread](https://developers.imiconnect.io/docs/icthread) that match the provided parameters. The result set is ordered newest to oldest.

  Syntax: ICThread[] loadThreads(Date modifiedBefore, Date modifiedAfter, int limit)

Parameters

Parameter

Type

Description

modifiedBefore

Date

Filters the result set to contain threads whose modifiedDate is before the provided date. If a null value is passed, the behavior should be similar to passing the current device date.

modifiedAfter

Date

Filters the result set to contain threads whose modifiedDate is after the provided date. If a null value is passed, the behavior should be similar to passing the current device date.

limit

int

Limits the number of threads returned in the result set.

  Return Value: An array of [ICThread](https://developers.imiconnect.io/docs/icthread) instances that match the provided criteria.

loadThreads


Loads an array of [ICThread](https://developers.imiconnect.io/docs/icthread) that match the provided parameters. The result set is ordered newest to oldest.

  Syntax: ICThread[] loadThreads(Date modifiedBefore, int limit)

Parameters

Parameter

Type

Description

modifiedBefore

Date

Filters the result set to contain threads whose modifiedDate is before the provided date. If a null value is passed, the behavior should be similar to passing the current device date.

limit

int

Limits the number of threads returned in the result set.

  Return Value: An array of [ICThread](https://developers.imiconnect.io/docs/icthread) instances that match the provided criteria.

loadUnreadThreads


Loads an array of unread [ICThread](https://developers.imiconnect.io/docs/icthread) instance, a thread is considered unread if it contains at least one unread message. The result set is ordered newest to oldest.

  Syntax: ICThread[] loadUnreadThreads(int limit)

Parameters

Parameter

Type

Description

limit

int

Limits the number of threads returned in the result set.

  Return Value: An array of [ICThread](https://developers.imiconnect.io/docs/icthread) instances that match the provided criteria.

saveMessage


Saves a single [ICMessage](https://developers.imiconnect.io/docs/icmessage) to the store.

  Syntax: boolean saveMessage(ICMessage message)

Parameters

Parameter

Type

Description

Message

[ICMessage](https://developers.imiconnect.io/docs/icmessage)

The message to be saved to the store.

  Return Value: true if the message was stored, otherwise false

saveMessages

Saves an array of [ICMessage](https://developers.imiconnect.io/docs/icmessage) to the store.

  Syntax: boolean saveMessages(ICMessage[] messages)

Parameters

Parameter

Type

Description

messages

[ICMessage](https://developers.imiconnect.io/docs/icmessage)

The array of messages to be saved to the store

  Return Value: true if the messages were stored, otherwise false.

saveThread


Saves a single [ICThread](https://developers.imiconnect.io/docs/icthread) to the store.

  Syntax: boolean saveThread(ICThread thread)

Parameters

Parameter

Type

Description

thread

[ICThread](https://developers.imiconnect.io/docs/icthread)

The thread to be saved to the store

  Return Value: true if the thread was saved, otherwise false.

saveThreads

Saves an array of [ICThread](https://developers.imiconnect.io/docs/icthread) instances to the store.

  Syntax: boolean saveThreads(ICThread[] threads).

Parameters

Parameter

Type

Description

threads

[ICThread](https://developers.imiconnect.io/docs/icthread)

The array of threads to be saved to the store

  Return Value: true if the threads were saved, otherwise false.