Draft
Conversation
074dc73 to
2d34ff3
Compare
ab134d2 to
3127450
Compare
3127450 to
f50377e
Compare
23b18fc to
05b9a26
Compare
deb4c0e to
e21d4e5
Compare
e21d4e5 to
ceef454
Compare
ceef454 to
425ed1c
Compare
37d84db to
538c7db
Compare
78a8ed7 to
552b889
Compare
6 tasks
190c889 to
f99a164
Compare
This was referenced Mar 12, 2026
5d65918 to
f07cdff
Compare
This was referenced Mar 18, 2026
f07cdff to
bf07a78
Compare
This was referenced Mar 20, 2026
31f752c to
f67a329
Compare
This was referenced Mar 25, 2026
f67a329 to
52dee15
Compare
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
52dee15 to
f9d6365
Compare
Contributor
Contributor
|
APK file: https://www.kaminsky.me/nc-dev/android-artifacts/5635.apk |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

WIP
resolve Chat relay via High-performance backend #5633
resolve get rid of forked ChatKit #1552
This PR will
Use signaling to receive chat messages instead of long polling when hpb is used
Introduce a regular insurance request if somehow a signaling messages did not make it through
Change the chat architecture from an event based message handling to a state based messages handling. This change was done in this PR because adding two more ways how messages can be received (signaling and insurance request) would have made the event based messages Handling even more complex.
Before:
messages were passed to ui directly from responses (as well to DB). This was necessary as the chatkit library required different processing depending on if messages from the past or future were received
Now:
Received messages are just written to database no matter where they come from (initial request / request for scrolling into past /long polling / signaling / insurance request).
Messages are observed on database to be shown in UI via flows.
The database is the single source of truth, so no events are needed to update the ui.
To avoid messages gaps in UI, the chat block handling is used: the flow is implemented so that always the messages from the newest chat block are emitted. For this, the database is observed for the newest chat block and whenever it changes, the messages of it are emitted.
Refactor and improve the Jetpack Compose code for messages that was used for the message search window to be able to handle flows. (for now it was only able to handle a single response with a chat message list)
Add a new solution to automatically mark messages as read.
messages were marked as read as soon as they were received.
messages are marked as read until the newest message that was shown on the screen. This is transmitted whenever the user manually scrolls or when the chat is closed/brought to background.
This change was planned for ages and it was now necessary because of the signaling handling.
improve scope handling of the flows from database
TODO
ref https://github.com/nextcloud/spreed/blob/fd1807d0017d736b3d058a830f720defc670a6a0/lib/Signaling/Listener.php#L80-L101
ref https://github.com/nextcloud/spreed/blob/bf0f5f05e42b9d94449970c09836978650b1a514/lib/Chat/Parser/SystemMessage.php#L118
reactionsSelffor relayed reactions spreed#16349might be done in followup PRs
🏁 Checklist
/backport to stable-xx.x