Commit Graph

2123 Commits

Author SHA1 Message Date
td bc3d2bbd6d
fix: reuse a deviceId if available 2025-08-01 21:23:46 +02:00
Christian Kußowski 282ac54c7b
refactor: Restrict canKick canBan and canRedact to joined users 2025-07-17 10:18:05 +02:00
Christian Kußowski d3071ec531
refactor: Restrict canRequestHistory to joined or archived rooms 2025-07-17 09:51:50 +02:00
Christian Kußowski 48f59f378d
refactor: Restrict canChangeStateEvent, canInvite and canSendEvent to joined users 2025-07-17 09:51:49 +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 a5d1e72bdf
fix: user.canKick should be true for knocking users as well 2025-06-16 09:56:40 +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 98fcd683a6
refactor: Migrate megolm to vodozemac 2025-06-08 10:18:15 +02:00
Christian Kußowski 31a32b0145
feat: Migrate to vodozemac 2025-06-08 10:18:15 +02:00
Krille-chan 6cf6171b35
refactor: disable benchmarks by global boolean (#2104)
Benchmarks are flooding the logs. We should disable them by default and allow having low debug level at the same time.
2025-06-06 17:15:13 +05:30
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
Christian Kußowski bac29d959d
fix: no user feedback if client.getConfig() takes some time
When sending a file in an environment with bad internet
where Client.getConfig() takes some
seconds, the user does not get
any feedback at all.
This change now makes sure that
the user always sees the pending
event in the timeline before anything
else is done in the room.sendFileEvent method.
2025-06-01 18:01:21 +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
Christian Kußowski 65f1b68f97
feat: Add logout command 2025-05-13 13:38:19 +02:00
Christian Kußowski e94ef4ab82
fix: Correct filename when downloading thumbnail 2025-05-13 10:26:22 +02:00
Christian Kußowski c6ff6ebc76
fix: Add missing copy json in updateInboundGroupdSessionAllowedAtIndex method 2025-05-13 10:04:53 +02:00
krille-chan f3bb654ac2
feat: Switch to github flavor markdown to render checkboxes
Also fixes a bug where a room pill was not rendered as link.
2025-05-10 15:45:31 +02:00
Krille 4ee0fb021c
feat: Add localization for voice message type 2025-05-09 12:33:09 +02:00
Krille 35b352e8c1
feat: Support fallback for threads in Event.getReplyEvent() 2025-05-09 07:29:47 +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 a6999255d6
fix: incorrect Event status update in constructor 2025-05-08 19:18:17 +05:30
Krille 5ec745915e
refactor: (BREAKING) Remove hive database and hive dependencies 2025-05-08 14:29:52 +02:00
Krille 05f03e00d9
refactor: Remove unused event status roomState 2025-05-08 09:17:10 +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
Krille 1275f752f3
fix: Do not load timeline while sync is processed
This sometimes lead to the
problem that the timeline misses
the newest messages. Especially
when opening the app from a
notification this can happen.
2025-05-05 07:17:55 +02:00
td 7e41b01176
fix: make sure to keep track of aggregated events after requesting history or future 2025-04-30 17:43:55 +02:00
Yash-Garg 2738451ff6
fix: handling of existing calls in `onCallInvite` 2025-04-23 22:10:03 +05:30
Yash-Garg 470c3026ae
fix: add proper description for `User` class 2025-04-13 21:21:12 +05:30
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
krille-chan 1f93193190
fix: Trim plaintext after removeMarkdown 2025-03-29 08:38:21 +01:00
td 8b3776aed2
fix: use macv2 for correct base64 encoding 2025-03-28 13:06:42 +01: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
Karthikeyan S 7899f598a2
feat: export timeline events 2025-03-18 22:48:59 +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
Krille f89e9f575b
refactor: Add file info to placeholder before sending file event 2025-03-13 08:15:59 +01:00
Karthikeyan S 0d084d8824
fix: room prev_batch set incorrectly follow-up 2025-03-13 10:05:05 +05:30
Karthikeyan S 27c8e43dca
fix: incorrect filename when caption is used in body of event 2025-03-12 08:21:01 +05:30
Karthikeyan S e11878eef6
fix: room prev_batch set incorrectly 2025-03-11 17:32:43 +05:30
Karthikeyan S 563629142d
fix: incorrect mimeType for files when downloading 2025-03-11 17:00:12 +05:30
Krille 70dc9c6ef9
feat: Add command to upgrade room 2025-03-07 12:47:13 +01:00
Krille 662dac4142
feat: Add parameter for allow condition for restricted rooms 2025-03-07 12:36:03 +01:00
Krille 297c4a6a25
chore: Export event localizations 2025-03-07 09:08:47 +01:00
Krille c194ddee66
refactor: Make markUnread a noop if unread is already as intendend and throw exception if room membership is not join 2025-02-28 11:24:46 +01:00
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 2d3bfa64a7
refactor: Improve linebreak logic for html messages 2025-02-10 09:17:57 +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 6cd40d3f91
fix: Megolm sessions become invalid after restarting client
This bug seems to be in the
sdk for 5 years already without
anyone noticing. The method
loadInboundGroupSession
seems to return the wrong
variable when loading the
session from the key. While
the outboundgroupsession
loading method relies on
an inbound group session, it
silently marks the outbound
group session as invalid on
every restart and creates a
new one. This means we never
reuse megolm sessions after
restarting the client.

Fixing this will probably reduce
the amount of megolm sessions
used in a conversation by a lot
which could improve the
performance and make the
key backup more reliable.
2025-02-04 10:12:58 +01:00
Krille 86038f8c94
refactor: Use .toSet() instead of Set.from()
When using Set.from() then
it becomes a Set of
dynamics which disables the
Type checking.
By just changing this to
.toSet() it keeps the type.
2025-02-04 09:40:18 +01:00
Krille eb9bd0620f
fix: PushNotification fromJson - toJson fails 2025-02-04 09:23:31 +01:00
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
The one with the braid 4edae55852
fix: priorize direct chat users over empty hero user list
Signed-off-by: The one with the braid <info@braid.business>
2025-02-01 13:34:15 +01:00
Krille 1484e6770f
chore: Add tests for converting event types 2025-01-14 12:49:15 +01:00
Krille 83f993a2ff
fix: Add missing redacts parameter when transforming to Event type 2025-01-14 10:12:22 +01:00
td 020438f698
chore: (BREAKING CHANGE) spec v1.13 autogen 2025-01-13 09:26:59 +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
Karthikeyan S 64030693c9
chore: add transactionId getter to Event class 2025-01-08 23:07:32 +05:30
Krille 50ac4b55b2
fix: No roomId in BasicRoomEvent stores roomaccountdata silently wrong 2025-01-08 15:03:35 +01:00
Krille 2e8bae85c8
refactor: (BREAKING) Push Notification helper class make all fields optional and migrate dynamics to Object? 2025-01-08 09:43:09 +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 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