dont parse emojis until message rendertime #275

Merged
dan merged 2 commits from loadfaster into master 2020-04-03 19:45:22 +00:00
Owner

we currently parse every message in a chat history for emojis when the chat is selected from the contact list. this leads to conversation loading lag/ui hangs.

this pr:

  • moves parsing into the Message delegate so it doesn't happen until the message is actually displayed on screen
  • greatly reduces lag when loading a conversation with large history
  • introduces new lag when scrolling back through conversation history

a better fix would be to parse-and-save at rendertime, and an even better fix would be to send messages to a worker thread's queue for async parsing. those fixes would be better done in concert with the rest of the loading speed updates we're going to make though, so this is a bandaid fix for now.

we currently parse every message in a chat history for emojis when the chat is selected from the contact list. this leads to conversation loading lag/ui hangs. this pr: * moves parsing into the Message delegate so it doesn't happen until the message is actually displayed on screen * greatly reduces lag when loading a conversation with large history * introduces new lag when scrolling back through conversation history a better fix would be to parse-and-save at rendertime, and an even better fix would be to send messages to a worker thread's queue for async parsing. those fixes would be better done in concert with the rest of the loading speed updates we're going to make though, so this is a bandaid fix for now.
dan was assigned by erinn 2020-04-03 19:20:10 +00:00
Member

Drone Build Status: success

https://build.openprivacy.ca/cwtch.im/ui/519

Drone Build Status: success https://build.openprivacy.ca/cwtch.im/ui/519
Member

Drone Build Status: success

https://build.openprivacy.ca/cwtch.im/ui/521

Drone Build Status: success https://build.openprivacy.ca/cwtch.im/ui/521
dan closed this pull request 2020-04-03 19:45:22 +00:00
This repo is archived. You cannot comment on pull requests.
No description provided.