Commit Graph

531 Commits

Author SHA1 Message Date
Christian Kußowski bc8164a487
refactor: Return a better default for lastEventReceivedTime 2025-09-17 11:56:53 +02:00
Christian Kußowski 8a4eda5201
feat: Auto refresh last event after limited timeline
This adds a new behavior
on sync that the app
automatically fetches the
last event from server
after we receive a
limited timeline and the
lastEvent has not
changed.
2025-09-17 11:56:53 +02:00
Christian Kußowski d3497cac68
fix: Set unread notification count only if not null in sync
Fixes an edge case in the sdk
which sets the unread
notification count wrongly to 0 on room fake sync.
2025-09-12 15:28:31 +02:00
td 19df680dee
feat: (BREAKING CHANGE) delayed and device owned state events support for group calls
feat: allow setting keyring size

feat: allow setting custom call timeout values, you will have to pass the voip class to a bunch of existing call related methods though

feat: also debounce join key rotation
2025-09-09 14:33:01 +02:00
Christian Kußowski b32f0f28ba
refactor: Sync for unknown room in push helper and catch timeout exceptions 2025-08-19 10:49:55 +02:00
td bc3d2bbd6d
fix: reuse a deviceId if available 2025-08-01 21:23:46 +02:00
Christian Kußowski 3129f7cb47
fix: (BREAKING) Can not logout and login again with same Client object 2025-07-14 14:53:04 +02:00
Christian Kußowski b94677240b
refactor: Clean up new dart version lints 2025-06-22 17:02:01 +02:00
Christian Kußowski 92f5427e0a
fix: exportDump and importDump and add unit tests 2025-06-16 11:19:08 +02:00
Christian Kußowski 6df0fb5d06
refactor: Remove olm dependency 2025-06-10 08:34:49 +02:00
Christian Kußowski 5fdcbf8006
refactor: Migrate olm account to vodozemac 2025-06-08 10:18:15 +02:00
Christian Kußowski ba38b1f97f
refactor: Do not store room update for leave rooms not cached anyway
This adds a check before the storeRoomUpdate() call
if the room is actually known. This has the effect
that the call of forgetRoom() is skipped.

The reason for this is an edge case in the database
implementation when calling getAllKeys(). This
somehow can corrupt the keys-cache and lead to
some problems. I wasn't able to fix this problem
yet so this refactoring is more a good-enough
workaround for now to not trigger it on an
initial sync. I plan to fix it with a different
approach which completely removes the keys-cache
in the future.

However this change leads to some problems in the
tests as they already rely on this edge case.
2025-06-02 10:08:19 +02:00
The one with the braid ee51dfcca6
fix: fallback on homeserver is userID null
Signed-off-by: The one with the braid <info@braid.business>
2025-05-20 10:06:27 +02:00
Christian Kußowski c618baae70
refactor: (BREAKING) Make database required 2025-05-16 08:28:08 +02:00
krille-chan fc79d7142b
fix: Fetch well-known from domain from userId, not from homeserver domain 2025-05-08 18:55:05 +02:00
Karthikeyan S 3e29240e30
chore: prev_batch update after a limited timeline follow-up 2025-05-06 16:03:13 +05:30
td ec855ee525
fix: sanity if room prev_batch null, populate it 2025-05-06 11:31:38 +02:00
td 4721adde22
fix: make sure prev_batch is updated after a limited timeline 2025-05-06 11:26:15 +02:00
Mohammad Reza Moradi defe47a198
fix: deleting last message is edited 2025-04-10 11:49:35 +02:00
Krille 39ce0bf4a4
feat: Make dehydrated device name configurable 2025-04-02 09:27:52 +02:00
td ffd68a6acc
chore: add v1.14 to supported versions 2025-03-28 12:55:23 +01:00
td 06a1594609
feat: endpoints for spec v1.14 (BREAKING CHANGE) 2025-03-27 22:50:35 +01:00
Karthikeyan S 77ec2e0604
feat: ensure direct chats have only 2 members before sending verification requests 2025-03-21 15:54:18 +05:30
Karthikeyan S a3aede19e8
fix: set prev_batch first time from sync response correctly 2025-03-19 17:09:28 +05:30
td f4c6c8d203
fix: set prev_batch when seen in sync 2025-03-17 19:13:48 +01:00
td 3a9e65d375
feat: allow skipping existing chat when calling startDirectChat
feat: also allow specifying timeout duration in oneShotSync
2025-03-17 15:27:43 +01:00
Karthikeyan S 0d084d8824
fix: room prev_batch set incorrectly follow-up 2025-03-13 10:05:05 +05:30
Krille fdbe95ba75
fix: Older state events overwrite newer ones on fetching history 2025-02-11 15:57:33 +01:00
Krille bf37bf82a0
refactor: Add missing versions to supportedVersions and use warning instead of blocking 2025-02-11 09:46:32 +01:00
Krille a352809a01
feat: (BREAKING) Make share keys with logic configurable 2025-02-05 14:18:49 +01:00
The one with the braid 86fa1f9203
feat: BREAKING improve command_extension
- unify behavior of all message sending related command
- add a StringBuffer as stdout-like output buffer for commands
- create a typedef for the command function signature
- create a common exception type for command execution
- enable commands to run on Client-level rather than Room-level
- BREAKING: Client.addCommand signature now takes an optional StringBuffer as second parameter
2025-02-04 16:19:57 +05:30
Krille 776e941b6e
refactor: Make converting linebreaks in markdowntohtml optional
Element actually does not do
this and use the linebreaks
inside of their <p> tags. It
works for our new html
rendering as well which is
already in FluffyChat.
2025-02-03 11:48:10 +01:00
Krille 3f04532ffe
refactor: Remove BasicRoomEvent type
We actually never use the
roomId of this type and the
matrix spec has changed in
a way that the roomId is
never sent there actually. So
it was super easy to just
replace all BasicRoomEvent
with BasicEvent. The roomId
became nullable anyway.
2025-01-09 11:05:01 +01:00
Krille 50ac4b55b2
fix: No roomId in BasicRoomEvent stores roomaccountdata silently wrong 2025-01-08 15:03:35 +01:00
Krille bc328aab5c
refactor: Use Event instead of EventUpdate for storing in db 2025-01-07 14:56:04 +01:00
Krille 5ac6c940a9
refactor: Update rooms by event not event update 2025-01-07 12:36:49 +01:00
Krille e7065afe31
refactor: Do not use eventupdate type for verification requests 2025-01-07 12:36:49 +01:00
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 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
Krille e33a32e4fe
fix: Use MB and KB instead of MiB and KiB for file sizes 2024-12-18 11:35:23 +01:00
Konrad Pozniak c5532b8923
fix: don't reset wellknown cache on initialization 2024-12-17 13:09:10 +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 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 812c7dde82
refactor: Do not set default timeout for initialSync 2024-12-02 10:48:48 +01:00