... | @@ -163,6 +163,8 @@ The various `print_*` functions will to be moved from ConversationTextview to Ht |
... | @@ -163,6 +163,8 @@ The various `print_*` functions will to be moved from ConversationTextview to Ht |
|
|
|
|
|
In the end state, it should be easy to experiment with various presentations, where it's possible to swap presentations for each type of message ('status', 'error', 'info', 'incoming', 'outgoing', ...) separately. This will allow better future development and adaptation to user expectations.
|
|
In the end state, it should be easy to experiment with various presentations, where it's possible to swap presentations for each type of message ('status', 'error', 'info', 'incoming', 'outgoing', ...) separately. This will allow better future development and adaptation to user expectations.
|
|
|
|
|
|
|
|
Also, the content model should provide the view with chat status data: participants' read receipts (last message read) and typing-or-not status updates.
|
|
|
|
|
|
### Technical requirements
|
|
### Technical requirements
|
|
|
|
|
|
* Presentation of both messages from the server stream as well as (informational) messages originating from the client
|
|
* Presentation of both messages from the server stream as well as (informational) messages originating from the client
|
... | @@ -170,31 +172,46 @@ In the end state, it should be easy to experiment with various presentations, wh |
... | @@ -170,31 +172,46 @@ In the end state, it should be easy to experiment with various presentations, wh |
|
* Separation of presentation and chat management
|
|
* Separation of presentation and chat management
|
|
* Efficient updating of chat content driven by the chat content management class
|
|
* Efficient updating of chat content driven by the chat content management class
|
|
* Presentation layer will be provided *all* required input to determine correct rendering; currently this amounts to:
|
|
* Presentation layer will be provided *all* required input to determine correct rendering; currently this amounts to:
|
|
* `delayed`
|
|
* `delayed`
|
|
* `kind`
|
|
The server indicated that the message delivery was delayed for one reason or another (sending history or other reasons)
|
|
* `xhtml`
|
|
* `kind`
|
|
* `correct_id`
|
|
The type of conversation event; one of 'error', 'warn', 'info', 'out'/'outgoing', 'in'/'incoming', 'status', 'incoming_queue',
|
|
* `encrypted`
|
|
* `xhtml`
|
|
* `encryption_details`
|
|
The xhtml text in a message in case there is any
|
|
* `text`
|
|
* `correct_id`
|
|
* `time`
|
|
The msg_stanza_id of the message for which this message is a correction
|
|
* `contact`
|
|
* `encrypted`
|
|
|
|
When True, indicates that the message was encrypted on receipt
|
|
|
|
* `encryption_details`
|
|
|
|
Contains keys which explain which encryption was used, finger print, (more?)
|
|
|
|
* `text`
|
|
|
|
The plain text in a message in case there is any
|
|
|
|
* `time`
|
|
|
|
Time the message was received/generated, used for sorting the messages in the view
|
|
|
|
* `contact`
|
|
|
|
The sender of the message
|
|
* `displaymarking` (what's this about??)
|
|
* `displaymarking` (what's this about??)
|
|
* `xep0184` (would have been more conveniently named `message_delivery_confirmed`)
|
|
* `xep0184`
|
|
* `subject`
|
|
Indicates a read receipt has been requested for this message (?). Would have been more conveniently named `message_delivery_confirmed`
|
|
* `old_kind`
|
|
* `subject`
|
|
|
|
When set, includes a line containing "Subject: ..." followed by an empty line in the conversation view
|
|
|
|
* `old_kind`
|
|
|
|
Used to determine if two consecutive rows may be joined as lines from the same nick (under the 'chat_merge_consecutive_nickname' setting) -- decision should be moved to the ContentModel; old_kind is available to the model and can be dropped
|
|
* `other_tags_for_name` -- likely needs to move to the view/renderer
|
|
* `other_tags_for_name` -- likely needs to move to the view/renderer
|
|
* `other_tags_for_time` -- likely needs to move to the view/renderer
|
|
* `other_tags_for_time` -- likely needs to move to the view/renderer
|
|
* `other_tags_for_text` -- likely needs to move to the view/renderer
|
|
* `other_tags_for_text` -- likely needs to move to the view/renderer
|
|
* `simple`
|
|
* `simple` (unused; always False)
|
|
* `graphics`
|
|
Suppresses adding the time in front of the chat line
|
|
* `msg_log_id`
|
|
* `graphics`
|
|
* `msg_stanza_id`
|
|
Indicates that emojis are to be rendered graphically; other than that just passed on to the extension point; should be moved to the view(?)
|
|
* `count_as_new`
|
|
* `msg_log_id` (???)
|
|
|
|
* `msg_stanza_id`
|
|
|
|
The stanza_id as generated by the source to identify the message
|
|
|
|
* `count_as_new`
|
|
|
|
When false, indicates that a message should not generate attention even if it fits the requirements, because the message isn't to be considered "newly received"
|
|
* `restored_message` [derived value]
|
|
* `restored_message` [derived value]
|
|
This value indicates whether a message comes from before the chat was opened (restored from history or retrieved from MAM)
|
|
This value indicates whether a message comes from before the chat was opened (restored from history or retrieved from MAM)
|
|
|
|
|
|
What do all these mean???
|
|
|
|
|
|
|
|
### Required roles/classes
|
|
### Required roles/classes
|
|
|
|
|
... | | ... | |