Commit Graph

2107 Commits

Author SHA1 Message Date
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
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