Package com.avaya.clientservices.messaging

## Interface ConversationListener

-     public interface ConversationListener

  Interface that can be used to retrieve status updates for a conversation. One or more listeners can be registered to retrieve status updates on the conversation's various attributes.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `onConversationActiveStatusChanged​(Conversation conversation, boolean isActive)` | Called to report that the conversation's active status has changed in response to a local or remote operation.
    `void` | `onConversationCapabilitiesChanged​(Conversation conversation)` | Called to report that one or more of the capabilities of the conversation has changed.
    `void` | `onConversationClosedStatusChanged​(Conversation conversation, boolean isClosed)` | Called to report that the closed state of the conversation has changed in response to a local or remote operation.
    `void` | `onConversationLastAccessTimeChanged​(Conversation conversation, java.util.Date time)` | Called to report that the last accessed time of the conversation has changed in response to messages in the conversation being marked as read, or by an explicit invocation of the `Conversation.setLastAccessTime(MessagingCompletionHandler)` method.
    `void` | `onConversationLastUpdatedTimeChanged​(Conversation conversation, java.util.Date time)` | Called to report that the last updated time of the conversation has changed.
    `void` | `onConversationLatestEntryTimeChanged​(Conversation conversation, java.util.Date time)` | Called to report that the latest entry time of the conversation has changed in response to new messages being added to the conversation.
    `void` | `onConversationMessagesAdded​(Conversation conversation, java.util.List<Message> messages)` | Called to report that one or more messages have been added to the conversation.
    `void` | `onConversationMessagesRemoved​(Conversation conversation, java.util.List<Message> messages)` | Called to report that one or more messages have been removed from the conversation.
    `void` | `onConversationMultiPartyStatusChanged​(Conversation conversation, boolean isMultiParty)` | Called to report that the isMultiparty state of the conversation has changed in response to new participants being added or existing participants being removed.
    `void` | `onConversationParticipantsAdded​(Conversation conversation, java.util.List<MessagingParticipant> addedParticipants)` | Called to report that one or more participants have been added to the conversation.
    `void` | `onConversationParticipantsRemoved​(Conversation conversation, java.util.List<MessagingParticipant> removedParticipants)` | Called to report that one or more participants have been removed from the conversation.
    `void` | `onConversationPreviewTextChanged​(Conversation conversation, java.lang.String previewText)` | Called to report that the preview text for the conversation has changed.
    `void` | `onConversationSensitivityChanged​(Conversation conversation, SensitivityLevel sensitivity)` | Called to report that the sensitivity of the conversation has changed via either a local or remote operation.
    `void` | `onConversationStatusChanged​(Conversation conversation, ConversationStatus status)` | Called to report that resource status of the conversation has changed.
    `void` | `onConversationSubjectChanged​(Conversation conversation, java.lang.String subject)` | Called to report that the subject of the conversation has changed via either a local or remote operation.
    `void` | `onConversationTotalAttachmentCountChanged​(Conversation conversation, int totalAttachmentCount)` | Called to report that the total number of attachments in the conversation has changed.
    `void` | `onConversationTotalMessageCountChanged​(Conversation conversation, int totalMsgCount)` | Called to report that the total number of messages in the conversation has changed.
    `void` | `onConversationTotalUnreadAttachmentCountChanged​(Conversation conversation, int totalUnreadAttachmentCount)` | Called to report that total number of unread attachments in the conversation has changed.
    `void` | `onConversationTotalUnreadMessageCountChanged​(Conversation conversation, int totalUnreadMsgCount)` | Called to report that the number of unread messages in the conversation has changed.
    `void` | `onConversationTypeChanged​(Conversation conversation, ConversationType conversationType)` | Called to report that the type of the conversation has changed.

- - ### Method Detail

    - #### onConversationActiveStatusChanged

          void onConversationActiveStatusChanged​(Conversation conversation,
                                                 boolean isActive)

      Called to report that the conversation's active status has changed in response to a local or remote operation.
      Parameters:
        `conversation` - the `Conversation` for which the active state has changed.
        `isActive` - the new value of the isActive flag.
      See Also:
        `Conversation.isActive()`

    - #### onConversationClosedStatusChanged

          void onConversationClosedStatusChanged​(Conversation conversation,
                                                 boolean isClosed)

      Called to report that the closed state of the conversation has changed in response to a local or remote operation.
      Parameters:
        `conversation` - the `Conversation` for which the closed state has changed.
        `isClosed` - the new value of the isClosed flag.
      See Also:
        `Conversation.isClosed()`

    - #### onConversationMultiPartyStatusChanged

          void onConversationMultiPartyStatusChanged​(Conversation conversation,
                                                     boolean isMultiParty)

      Called to report that the isMultiparty state of the conversation has changed in response to new participants being added or existing participants being removed.
      Parameters:
        `conversation` - the `Conversation` for which the multi party state has changed.
        `isMultiParty` - the new value of the isMultiParty flag.
      See Also:
        `Conversation.isMultiParty()`

    - #### onConversationLastAccessTimeChanged

          void onConversationLastAccessTimeChanged​(Conversation conversation,
                                                   java.util.Date time)

      Called to report that the last accessed time of the conversation has changed in response to messages in the conversation being marked as read, or by an explicit invocation of the `Conversation.setLastAccessTime(MessagingCompletionHandler)` method.
      Parameters:
        `conversation` - the `Conversation` for which the last accessed time has changed.
        `time` - the new `Date` time.
      See Also:
        `Conversation.getLastAccessedTime()`

    - #### onConversationLastUpdatedTimeChanged

          void onConversationLastUpdatedTimeChanged​(Conversation conversation,
                                                    java.util.Date time)

      Called to report that the last updated time of the conversation has changed.
      Parameters:
        `conversation` - the `Conversation` for which the time has changed.
        `time` - the new time.
      See Also:
        `Conversation.getLastUpdatedTime()`

    - #### onConversationLatestEntryTimeChanged

          void onConversationLatestEntryTimeChanged​(Conversation conversation,
                                                    java.util.Date time)

      Called to report that the latest entry time of the conversation has changed in response to new messages being added to the conversation.
      Parameters:
        `conversation` - the `Conversation` for which the time has changed.
        `time` - the new time.
      See Also:
        `Conversation.getLastEntryTime()`

    - #### onConversationStatusChanged

          void onConversationStatusChanged​(Conversation conversation,
                                           ConversationStatus status)

      Called to report that resource status of the conversation has changed.
      Parameters:
        `conversation` - the `Conversation` for which the status has changed.
        `status` - the `ConversationStatus` new value of the resource status.

    - #### onConversationPreviewTextChanged

          void onConversationPreviewTextChanged​(Conversation conversation,
                                                java.lang.String previewText)

      Called to report that the preview text for the conversation has changed.
      Parameters:
        `conversation` - the `Conversation` for which the preview text changed.
        `previewText` - the new value of the preview text.

    - #### onConversationTotalMessageCountChanged

          void onConversationTotalMessageCountChanged​(Conversation conversation,
                                                      int totalMsgCount)

      Called to report that the total number of messages in the conversation has changed.
      Parameters:
        `conversation` - the `Conversation` for which the total number of messages have changed.
        `totalMsgCount` - the new value representing the total message count.
      See Also:
        `Conversation.getTotalMessageCount()`

    - #### onConversationTotalAttachmentCountChanged

          void onConversationTotalAttachmentCountChanged​(Conversation conversation,
                                                         int totalAttachmentCount)

      Called to report that the total number of attachments in the conversation has changed.
      Parameters:
        `conversation` - the `Conversation` conversation for which the total number of attachment has changed.
        `totalAttachmentCount` - the new value representing the total attachment count.

    - #### onConversationTotalUnreadMessageCountChanged

          void onConversationTotalUnreadMessageCountChanged​(Conversation conversation,
                                                            int totalUnreadMsgCount)

      Called to report that the number of unread messages in the conversation has changed.
      Parameters:
        `conversation` - the `Conversation` for which the total number of unread messages have changed.
        `totalUnreadMsgCount` - the new value representing the unread message count.

    - #### onConversationTotalUnreadAttachmentCountChanged

          void onConversationTotalUnreadAttachmentCountChanged​(Conversation conversation,
                                                               int totalUnreadAttachmentCount)

      Called to report that total number of unread attachments in the conversation has changed.
      Parameters:
        `conversation` - the `Conversation` conversation for which the total number of unread attachment has changed.
        `totalUnreadAttachmentCount` - the new value representing the unread attachment count.

    - #### onConversationSensitivityChanged

          void onConversationSensitivityChanged​(Conversation conversation,
                                                SensitivityLevel sensitivity)

      Called to report that the sensitivity of the conversation has changed via either a local or remote operation.
      Parameters:
        `conversation` - the `Conversation` for which the sensitivity has changed.
        `sensitivity` - the new sensitivity's value.

    - #### onConversationSubjectChanged

          void onConversationSubjectChanged​(Conversation conversation,
                                            java.lang.String subject)

      Called to report that the subject of the conversation has changed via either a local or remote operation.
      Parameters:
        `conversation` - the `Conversation` for which the subject has changed.
        `subject` - the new subject's value.

    - #### onConversationTypeChanged

          void onConversationTypeChanged​(Conversation conversation,
                                         ConversationType conversationType)

      Called to report that the type of the conversation has changed. This is called when a user changes the conversation's type.
      Parameters:
        `conversation` - the `Conversation` conversation for which the type has changed.
        `conversationType` - the `ConversationType` new type's value.

    - #### onConversationMessagesAdded

          void onConversationMessagesAdded​(Conversation conversation,
                                           java.util.List<Message> messages)

      Called to report that one or more messages have been added to the conversation.
      Parameters:
        `conversation` - the `Conversation` for which messages were added.
        `messages` - the list of `Message` new messages which have been added.

    - #### onConversationMessagesRemoved

          void onConversationMessagesRemoved​(Conversation conversation,
                                             java.util.List<Message> messages)

      Called to report that one or more messages have been removed from the conversation.
      Parameters:
        `conversation` - the `Conversation` for which the messages were removed.
        `messages` - the new messages which have been removed.

    - #### onConversationParticipantsAdded

          void onConversationParticipantsAdded​(Conversation conversation,
                                               java.util.List<MessagingParticipant> addedParticipants)

      Called to report that one or more participants have been added to the conversation.
      Parameters:
        `conversation` - the `Conversation` for which the participants were added.
        `addedParticipants` - new list of `MessagingParticipant` added to conversation.

    - #### onConversationParticipantsRemoved

          void onConversationParticipantsRemoved​(Conversation conversation,
                                                 java.util.List<MessagingParticipant> removedParticipants)

      Called to report that one or more participants have been removed from the conversation.
      Parameters:
        `conversation` - the `Conversation` from which the participants were removed.
        `removedParticipants` - the list of `MessagingParticipant` deleted from the conversation.

    - #### onConversationCapabilitiesChanged

          void onConversationCapabilitiesChanged​(Conversation conversation)

      Called to report that one or more of the capabilities of the conversation has changed. The application should query each of the capabilities and enable/disable elements of the user interface based on the new capability settings. Capabilities can change as a result of local or remote actions.
      Parameters:
        `conversation` - the `Conversation` conversation that the callback is associated with.
      See Also:
        `Conversation.getUpdateSubjectCapability()`, `Conversation.getUpdateLastAccessTimeCapability()`, `Conversation.getUpdateSensitivityCapability()`, `Conversation.getUpdateTypeCapability()`, `Conversation.getOlderContentCapability()`, `Conversation.getAddParticipantsCapability()`, `Conversation.getRemoveParticipantsCapability()`, `Conversation.getCreateMessageCapability()`, `Conversation.getMarkAllContentAsReadCapability()`, `Conversation.getLeaveCapability()`, `Conversation.getStartCapability()`, `Conversation.getRemoveCapability()`