Age | Commit message (Collapse) | Author |
|
In Quaternion, I was able to reproduce a process where
`d->notificationCount` and `d->highlightCount` were changed in
`Room::updateData()` meanwhile `roomChanges` indicated `NoChange`
thus the cache became permanently inconsistent with running state.
Without deep understanding of `roomChanges` logic, I've applied
this straightforward change which made this phenomenon
unreproducible.
|
|
Closes #326.
|
|
|
|
|
|
|
|
This is an addition in https://github.com/matrix-org/synapse/pull/5805 -
Synapse no more tolerates fake state events (which actually obviates
the need for this test but fake state events still go through on older
Synapses). To allow checking for both cases Room behaviour has been
slightly changed (without compat breakage) to make sure the pending
event status is set to ReachedServer (and pendingEventChanged() is
emitted, if necessary) before merging the pending event into the
timeline.
|
|
|
|
|
|
Unified *Key -> *KeyL identifiers in roommessageevent.cpp along the way.
|
|
|
|
* struct EventRelation; class ReactionEvent; Room::relatedEvents()
* Reaction events are processed in both history and sync batches
* Redacting a reaction removes it from the list of related events
* QMCTest::sendReaction()
|
|
|
|
|
|
|
|
Also: refactoring to streamline state events submission.
|
|
|
|
A few places in the library dealt with state events without any notion
of state_key inside events, including StateEvent[Base] and relevant
functions in Room. A number of workarounds have been made; e.g.,
Room::setMemberState() accepted userId as a separate parameter, ignoring
the state key inside the RoomMemberEvent already passed to it, and
Room::setLocalAliases() had a bug in the initial version where the
function still tried to pass aliases in an event with an empty state
key. This commit fixes this shortcoming: StateEventBase now gets
stateKey as one more parameter, Room::Private::getCurrentState()
respects stateKey and returns properly constructed stub events, and
Room::setMemberState() gives way to a more generic Room::setState() that
works uniformly with whatever state event you pass to it.
|
|
|
|
The caveat is that the library doesn't support .well-known yet, therefore will work not fully correctly (in particular - won't correctly set aliases) with servers that have serverpart different from the homeserver hostname used to connect to it.
|
|
|
|
Closes #301.
|
|
# Conflicts:
# CMakeLists.txt
# lib/avatar.cpp
# lib/connection.cpp
# lib/connection.h
# lib/connectiondata.cpp
# lib/csapi/account-data.cpp
# lib/csapi/account-data.h
# lib/csapi/capabilities.cpp
# lib/csapi/capabilities.h
# lib/csapi/content-repo.cpp
# lib/csapi/create_room.cpp
# lib/csapi/filter.cpp
# lib/csapi/joining.cpp
# lib/csapi/keys.cpp
# lib/csapi/list_joined_rooms.cpp
# lib/csapi/notifications.cpp
# lib/csapi/openid.cpp
# lib/csapi/presence.cpp
# lib/csapi/pushrules.cpp
# lib/csapi/registration.cpp
# lib/csapi/room_upgrades.cpp
# lib/csapi/room_upgrades.h
# lib/csapi/search.cpp
# lib/csapi/users.cpp
# lib/csapi/versions.cpp
# lib/csapi/whoami.cpp
# lib/csapi/{{base}}.cpp.mustache
# lib/events/accountdataevents.h
# lib/events/eventcontent.h
# lib/events/roommemberevent.cpp
# lib/events/stateevent.cpp
# lib/jobs/basejob.cpp
# lib/jobs/basejob.h
# lib/networkaccessmanager.cpp
# lib/networksettings.cpp
# lib/room.cpp
# lib/room.h
# lib/settings.cpp
# lib/settings.h
# lib/syncdata.cpp
# lib/user.cpp
# lib/user.h
# lib/util.cpp
|
|
[ci skip]
|
|
|
|
|
|
|
|
This is to make sure a pending event with file transfer already placed.
|
|
It's no more entirely along the spec lines but gives better results with
or without lazy-loading, across a wide range of cases. Closes #310.
|
|
|
|
Clients should not need to call this method explicitly.
|
|
oldStateEvent
memberJoinState() just happens to return the not-yet-updated state,
making its use around state changes very sensitive to moving things
around. The event's own prevContent is unsigned, therefore untrusted.
|
|
currentState; cleanup
|
|
there
Closes #306.
|
|
A softer take on #306.
|
|
Check the URL before passing over to Connection::downloadFile(), not only the file name.
|
|
Previously slashes in eventIds (that come plenty in v3 due to base64 encoding) were not properly encoded - they are now.
|
|
Closes #299. Due to restrictions for the NOTIFY signal notificationCountChanged and highlightCountChanged no more carry Room* as a parameter, breaking back-compatibility.
|
|
|
|
|
|
Closes #268.
|
|
Closes #288; fixes one more case similar to #286.
Also: disconnect file transfer signals correctly in Room::postFile.
|
|
Closes #286.
|
|
WORKAROUND_EXTENDED_INITIALIZER_LIST -> BROKEN_INITIALIZER_LISTS is
available from util.h now.
|
|
postHtmlText becomes just a synonym for 2-arg postHtmlMessage (hopefully
at least this doesn't confuse QML that is generally terrible at
resolving overloads).
|
|
Closes #256.
|
|
|
|
Closes #279.
|
|
|
|
|
|
|