Interface Channel.Interface.ChatState

Interface Index (Compact) | Summary | Description | Methods | Signals | Properties | Types

Methods

SetChatState (u: State) nothing

Signals

ChatStateChanged (u: Contact, u: State)

Properties

ChatStates a{uu} ( Chat_State_Map) Read only

Types

Channel_Chat_State Enum u
Chat_State_Map Mapping a{uu}
Objects implementing this interface must also implement:

Description

An interface for channels for receiving notifications of remote contacts' state, and for notifying remote contacts of the local state.

Clients should assume that a contact's state is Channel_Chat_State_Inactive unless they receive a notification otherwise.

The Channel_Chat_State_Gone state is treated differently to other states:

The different states are defined by XEP-0085, but may be applied to any suitable protocol.

Methods

(Permalink)

SetChatState (u: State) → nothing

Parameters

Set the local state and notify other members of the channel that it has changed.

Possible Errors

  • Network Error
  • Raised when there is an error reading from or writing to the network.
  • Not Available
  • Raised when the requested functionality is temporarily unavailable.
  • Invalid Argument
  • Raised when one of the provided arguments is invalid.

Signals

(Permalink)

ChatStateChanged (u: Contact, u: State)

Parameters

Emitted when the state of a member of the channel has changed. This includes local state.

Properties

Accessed using the org.freedesktop.DBus.Properties interface.
(Permalink)

ChatStates — a{uu} (Chat_State_Map)

Read only
Added in 0.19.7.

A map containing the chat states of all contacts in this channel whose chat state is not Inactive.

Contacts in this channel, but who are not listed in this map, may be assumed to be in the Inactive state.

In implementations that do not have this property, its value may be assumed to be empty until a ChatStateChanged signal indicates otherwise.

Rationale:

This property was not present in older versions of telepathy-spec, because chat states in XMPP are not state-recoverable (if you miss the change notification signal, there's no way to know the state). However, this property still allows clients to recover state changes that were seen by the CM before the client started to deal with the channel.

In CMs that follow older spec versions, assuming Inactive will mean that initial chat states will always be assumed to be Inactive, which is the best we can do. XEP 0085 specifies Inactive as the "neutral" state to be assumed unless told otherwise.

Types

Enum (Permalink)

Channel_Chat_State — u

  • Gone (0)
  • The contact has effectively ceased participating in the chat.
  • Inactive (1)
  • The contact has not been active for some time.
  • Active (2)
  • The contact is actively participating in the chat.
  • Paused (3)
  • The contact has paused composing a message.
  • Composing (4)
  • The contact is composing a message to be sent to the chat.
Mapping (Permalink)

Chat_State_Map — a{uu}

Added in 0.19.7.
A map from contacts to their chat states.