When a conversation is restored from hold, display only the newest few messages and prepend more as the user scrolls up

NEW
Unassigned

Status

Instantbird
Conversation
--
enhancement
3 years ago
4 months ago

People

(Reporter: nhnt11, Unassigned)

Tracking

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Reporter)

Description

3 years ago
When a conversation with lots of messages (imagine an active MUC that has been open for a few days) is restored, we currently add messages from oldest to newest. This can take a lot of time, and even though it's async, is slow and inconvenient since the latest messages appear last.
The convbrowser should display the first few (maybe 50? 100?) messages first, and then keep adding more messages (again, in groups of 50?) as the user scrolls up.
(In reply to Nihanth Subramanya [:nhnt11] from comment #0)

> The convbrowser should display the first few (maybe 50? 100?) messages

Does this have to be a constant? I would like if we could display about twice what can fit in the display area. And that number would change significantly based on the window size and the message theme used (eg. simple vs Bubbles).

Be careful to not break section scroll :-).
(Reporter)

Comment 2

3 years ago
Created attachment 8474116 [details] [diff] [review]
WIP

This WIP includes code for prepending a group of messages, and uses this to prepend the last 50 messages when a conversation is restored from hold, and 50 more every time the user scrolls to the top.

I've been working on getting the unread ruler working with prepended groups, and a few other issues, hopefully I'll have that up soon.
Assignee: nobody → nhnt11
Status: NEW → ASSIGNED
(Reporter)

Comment 3

3 years ago
Created attachment 8475901 [details] [diff] [review]
WIP 2

This makes the unread ruler work with prepending, and also generalizes (albeit sloppily) the code in removeUnreadRuler that merges bubble groups. This is used to merge two prepended groups when required.
Attachment #8474116 - Attachment is obsolete: true
(Reporter)

Updated

4 months ago
Assignee: nhnt11 → nobody
Status: ASSIGNED → NEW
You need to log in before you can comment on or make changes to this bug.