Mentions are now loaded from the cache instead of
directly from the web request. Mentions are also
properly saved to the cache now (instead of as empty
strings). Still lots of tweaks left on this feature.
Cache user mentions when they are retrieved from the server.
This logic currently isn't being utilized by the UI. Additionally,
the app should use a 'since' value to only get mentions newer
than those stored in the DB, to avoid excessive web requests.
This will be implemented in a future commit.
Mentions are now separated into 'this room' and 'all rooms'
tab., which allows the user to filter on the current room
if they desire. Should add additional logic in the future
to show which room the mention was in the for the 'all rooms'
view.
Add a RoomListItem-like button that opens a dialog
containing all of the messages that would result in a
highlight from the server (for example, the user is mentioned,
or @room is mentioned).
This is VERY rudimentary and will be completely reworked in the future
to take advantage of the existing TimelineView class, instead of
using a dialog like it does now. The button to show the mentions
also needs work.
Quoted replies now include matrix.to links for the event and the user.
UI Rendering has been (slightly) improved... still very WIP.
Restructured the reply structure in the code for future usability
improvements.
When user is mentioned (via matrix 'highlight_count'), inactive
rooms will use a different color for the notification circle than
when only general unread messages exist.
The old algorithm during filtering will check every room
if it's part of the group. O(N*G)
The room ids for a group are now stored in a map for faster lookup
so the search can be completed in a single pass. O(N)