Commit Graph

1999 Commits

Author SHA1 Message Date
Karthikeyan S 83003c86c7
fix: clear cache when clearing DB in MatrixSdkDatabase 2025-01-07 16:36:37 +05:30
Karthikeyan S 05ee4031bf
chore: BREAKING rename timeCreated to latestEventReceivedTime in Room 2024-12-31 22:16:31 +05:30
Krille 632ecbed7e
chore: Follow up store unable to decrypt information correctly 2024-12-31 13:36:11 +01:00
Krille 2c42c12e72
refactor: Handle Room Account Data outside of Room Event Updates
This also makes sure that
room account data does not
get unnecessarily serialized
and deserialized before
storing it in the database.
For this it changes the
code flow at multiple
places.
2024-12-31 10:58:09 +01:00
Krille 135face535
refactor: (BREAKING) Remove deprecated Hive Database 2024-12-31 09:00:47 +01:00
Krille ce0dfc77ff
fix: Also load room account data in getSingleRoom() 2024-12-30 12:49:14 +01:00
Krille 2d2bbc60cd
refactor: Do not unnecessarily serialize and deserialize json for every account data object
This changes the database
api a little bit so that it does
not unnecessarily serialize
and deserialize all
account data objects. Should
improve the performance of
the SDK.
2024-12-30 12:00:29 +01:00
Krille 9fc7f4a3b4
refactor: Do not handle ephemerals as EventUpdates
This handles room ephemerals
directly and not as room
event updates, which saves
one unnecessary step to json serialize and
deserialize. Handling those
as room event updates had
no benefit anyway so this
should speed up performance.
2024-12-30 11:38:53 +01:00
Krille 017a39c792
refactor: Use Event instead of EventUpdate for pending decryption event queue and for decrypt events in general
This should removes an
unnecessary step of
json serialization and deserialization and should
therefore improve performance.
Gets rid of some unnecessary
code as well.
2024-12-27 13:12:44 +01:00
Karthikeyan S 239a39e2cb
feat: support push rule conditions event_property_is & event_property_contains 2024-12-23 15:21:01 +05:30
Krille 957b4241ad
refactor: Replace enhanced enum with native dart enum 2024-12-18 15:14:20 +01:00
Krille e33a32e4fe
fix: Use MB and KB instead of MiB and KiB for file sizes 2024-12-18 11:35:23 +01:00
Karthikeyan S f3e25596ac
fix: BREAKING! missed initial updates for stream listener callbacks in P2P & mesh calls 2024-12-17 18:11:13 +05:30
Konrad Pozniak c5532b8923
fix: don't reset wellknown cache on initialization 2024-12-17 13:09:10 +01:00
Krille c58f55c012
chore: Make parse version error less sound 2024-12-17 12:55:56 +01:00
Krille bc7b987772
refactor: Remove unnecessary roomId parameter from decryptRoomEvent method 2024-12-17 11:23:58 +01:00
Krille 04a46226cb
refactor: Fix new lints from flutter 3.27 2024-12-15 12:21:26 +01:00
Karthikeyan S 9ded85e786
fix: clear legacy db on logout properly 2024-12-11 07:54:05 +05:30
Krille ce7838e72a
refactor: BREAKING Store room states as triple keys 2024-12-09 12:36:39 +01:00
Krille 29aa28eecf
feat: (BREAKING) Replace onMigration with advanced callback onInitStateChanged
This makes it possible to track
the process of initialization in the
client by just enhancing what
the onMigration callback already
does.
2024-12-09 12:33:15 +01:00
Krille a26653a098
refactor: Clarify Room.join() behavior and make sure DM link is purged if room not found 2024-12-09 12:29:45 +01:00
Mohammad Reza Moradi 08e1e714e7
Merge branch 'main' into reza/send-reaction-on-only-admin-can-send-message-room 2024-12-06 15:36:51 +01:00
Karthikeyan S 9b800db175
fix: rejecting a call doesn't send m.call.reject event 2024-12-06 12:38:58 +05:30
Mohammad Reza Moradi ba9c3e7fc9
Merge branch 'main' into reza/send-reaction-on-only-admin-can-send-message-room 2024-12-05 13:17:53 +01:00
Mohammad Reza Moradi 04612a2296
fix: throw error on failed reaction send 2024-12-05 13:13:47 +01:00
Krille 812c7dde82
refactor: Do not set default timeout for initialSync 2024-12-02 10:48:48 +01:00
Johannes Nevels 7515ff6dbe
feat: support filtering events when requesting events history or future 2024-11-26 13:43:21 +01:00
Krille 989a1cd504
refactor: Do not set the deprecated dont_notify action in push rules
This has been deprecated since
https://spec.matrix.org/v1.7/client-server-api/#actions
An empty list of actions should now
be equal to a list with the entry
"dont_notify". Clients should
ignore this action and use
empty lists instead. A good
explaination can be found
https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3987-push-actions-clean-up.md
2024-11-25 14:08:45 +01:00
Krille 60d500956c
feat: Add deleteFile() endpoint to database 2024-11-12 08:32:32 +01:00
Krille f46e76295c
fix: BREAKING! Cache members for encrypted rooms in database
This fixes a huge performance
leak as for every encrypted room
the whole member list is loaded
every time you start the client.
This also changes the default value of `cache` in
this method to if the room is encrypted or not.
For encrypted rooms we always want a complete
member list locally.
2024-11-11 11:58:18 +01:00
Mohammad Reza Moradi 9c32193dff
chore: add require trailing comma lint 2024-11-07 16:13:37 +01:00
Krille 3116650210
feat: Optional authentication for profile requests 2024-10-23 12:18:36 +02:00
Krille 9918c5ab8f
feat: Add additional properties for LoginFlow type 2024-10-22 15:03:38 +02:00
Krille b1198f7b80
fix: AsyncCache is not invalidating on error
This fixes for example that if a
fetch from an asynccache once
failed it never gets retried. So we
only want to cache results, not
exceptions/errors
2024-10-21 14:53:52 +02:00
td 7605b1de31
feat: v1.12 spec endpoints support (BREAKING CHANGE) 2024-10-21 13:58:33 +02:00
Nicolas Werner 434ef9b880
chore: Upgrade dependencies
The library annotations are a new lint and we have no need to specify a
custom library name anywhere. The JS annoation on the library also did
nothing, since it doesn't default to the library name in dart and only
modifies the prefix of functions if you pass in a custom name.

The sqflite_common_ffi I removed the upper constraint, which allows us
to use a newer version if our dart version is new enough, but I left it
at the original version because there is no need to require a higher
minimum currently.
2024-10-21 13:04:47 +02:00
td b2e747bb3a
feat: add equality and hashCode overrides for autogenerated models (BREAKING CHANGE) 2024-10-18 14:02:55 +02:00
The one with the braid 0be79a9ee9
chore: update Emote-only expressions
- update the emote base regex
- update documentation about emote computation
- add source for the emote regex
- explain use of regex replace instead of `calcUnlocalizedBody`

Signed-off-by: The one with the braid <info@braid.business>
2024-10-18 12:54:38 +02:00
Krille 2d73192a40
refactor: Use Object.hash instead of hashCode ^ 2024-10-16 15:13:30 +02:00
Nicolas Werner e3d41bb449
fix: properly remove reply fallback from (un)localized body 2024-10-16 13:59:12 +02:00
Nicolas Werner e1f0d9c0ad
fix: edge cases when calculating (un)localized body
We used to randomly return an empty string when the formatted body was
empty, even though we never return an empty string usually. Similarly we
used to return the original formatted body in an edit, when the new
event has no formatted body.
2024-10-16 13:59:12 +02:00
Nicolas Werner a497a66012
chore: Add more (un)localized body tests
Covers a few edge cases that still fail. Changes to the unlocalizedBody
function shouldn't cause behavioural changes apart from fixing a few
edge cases.
2024-10-16 13:59:11 +02:00
Nicolas Werner c7d49695d5
fix: prevent body (and plaintextBody) from return html by accident
It is not clear why we ever would want to return the formatted_body when
we ask for the body, but it seems to not be used anywhere and there are
no tests covering that functionality. However it leads to suprising
results, where the plaintextBody can be tricked into returning html
without applying conversions. So we just get rid of that functionality.
2024-10-16 13:59:11 +02:00
Krille 4a754ded5f
fix: (BREAKING) Change power level without changing memory
The problem here is that we
have not created a deep copy
of the power level map. By using .copy() we create a
deep copy now.
2024-10-08 15:10:49 +02:00
Krille 13d756856e
refactor: Migrate to m.marked_unread from Matrix v1.12 2024-10-08 15:03:39 +02:00
Krille cdf6814f0a
chore: Make more clear that Client.uploadContent() does not end to end encrypt the file 2024-10-08 14:56:53 +02:00
Nicolas Werner 6a28ab05d0
fix: Deduplicate key OTK uploads
We do the key upload asynchronously without awaiting it. This means we
may do multiple syncs before the key upload finishes. So we may generate
more keys than we should.

To fix that prevent multiple key uploads from running at once. This may
lead to outdated key uploads in some cases if we miss an OTK being used
in sync. However, the next sync will still tell us about that so in the
worst case this might delay key uploads by 30s (with the default sync
timeout), which for normal usage should be completely acceptable.
2024-10-07 20:55:14 +02:00
Nicolas Werner 583be5ece7
fix: by default don't uplaod new keys in our tests
This reduces CPU load of the uploadKeys callback by a lot, since we
don't upload new keys on every empty sync in the tests.
2024-10-07 20:38:08 +02:00
Nicolas Werner b74dbdea4a
fix: Don't wait for 5 milliseconds on every sync in our tests
This was added in 77be6102f6 without much
documentation. I am pretty sure the intent was never to slow down every
test by 5 seconds, so let's get rid of it and do more careful delays
where it is useful (like specific sync requests for example).

Makes the tests run 5 times faster (the whole suite!) on my device.
2024-10-07 20:38:08 +02:00
Krille b913b40fd8
chore: Lower loglevel for call event with unexpected sender 2024-10-07 10:31:29 +02:00