Commit Graph

396 Commits

Author SHA1 Message Date
krille-chan 32a9f53587
feat: Implement msc 3381 polls 2025-11-04 14:06:43 +01:00
Kelrap 889c8e6555 feat: Use small versions of bullet point characters 2025-10-27 09:06:28 +01:00
Christian Kußowski fe94df97db
refactor: Upgrade to vodozemac cryptoutils 2025-09-30 10:07:19 +02:00
Christian Kußowski 9549270423
chore: Revert on upload progress
This is not working as expected.
As far as I can see there is no
way to do this with the http
package for now. Only way would
be to switch to dio. Not sure
if we want to do this.
2025-09-29 14:58:40 +02:00
Christian Kußowski 8735ecd378
feat: Add onProgress for upload and download methods 2025-09-29 11:56:15 +02:00
Karthikeyan S 6b73fc6354
refactor: migrate to web and js_interop pkgs 2025-09-26 14:08:01 +02:00
Christian Kußowski bc8164a487
refactor: Return a better default for lastEventReceivedTime 2025-09-17 11:56:53 +02:00
Christian Kußowski 0e7e9a9634
refactor: Allow room ids to not have a domain 2025-08-07 09:51:20 +02:00
Christian Kußowski 6df0fb5d06
refactor: Remove olm dependency 2025-06-10 08:34:49 +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 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
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
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 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 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 eb9bd0620f
fix: PushNotification fromJson - toJson fails 2025-02-04 09:23:31 +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 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 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 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
Mohammad Reza Moradi 9c32193dff
chore: add require trailing comma lint 2024-11-07 16:13:37 +01: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
Krille 13d756856e
refactor: Migrate to m.marked_unread from Matrix v1.12 2024-10-08 15:03:39 +02:00
td f79096dfbb
feat: support for authenticated media 2024-08-16 14:35:50 +05:30
td 4eb18f670f
fix: update last event properly on cancel send
also stores status in db
2024-07-31 14:36:25 +05:30
Krille cabf357cf7
refactor: Cache profiles in database and refactor API 2024-07-23 08:51:10 +02:00
Krille 2e51b450bf
refactor: Better avatar and names for invites
Group chats with no user
avatar should return null for
the room.avatar getter and not
a random hero avatar. This could
otherwise lead to confusion as
it looks like this is a DM which
is not the case.

For the name we should also
not just display the name of
the invitor like in a DM even for
group chats, but some more
additional information. I found
a String for
invites quite useful here as
this would name rooms without
a m.room.name like this:
"Invited by $senderName"
which should be short enough.
The alternative
"You have been invited by $senderName" could be too
long IMO.
2024-07-16 13:12:00 +02:00
Krille f0ab627031
fix: Return empty uri instead of original uri if uri is not mxc 2024-06-24 13:27:53 +02:00
Krille 491313ae7d
refactor: Use enhanced enums for room enums 2024-05-28 14:25:38 +02:00
Krille 5b46ae6e31
refactor: Use strippedstatevent as base for room state and user class
Before we have used the Event class for all
state events while for invite rooms those
actually were StrippedStateEvent objects. This
created some problems like we needed to set a
fake originServerTs (usually to DateTime.now()).
Actually we don't need the additional keys for
state events most of the time so just using
StrippedStateEvent for all states and typecasting
them to event where needed is not much of a
hassle while we benefit from a more clear
structure.
This also now uses StrippedStateEvent as a base
class for the User class which makes the User
class more minimal as keys like event_id and
origin_server_ts are no longer necessary. As we
create a lot of fake User objects where we had to
put fake values in it, it brings more benefits
than problems to just get rid of those fields.
2024-05-03 14:06:49 +02:00
td 20a31c1908
feat: famedly calls 2024-04-23 15:52:35 +05:30
Krille 849bd7ca9b
refactor: Make via fields not nullable 2024-04-11 11:32:23 +02:00
td cd94cf62a8
chore: merge api_lite and dart sdk 2024-03-25 17:22:05 +05:30
Krille 0ae71fa843
feat: Add commands /ignore and /unignore 2024-03-15 10:13:11 +01:00
Krille 1b93471d64
refactor: Deprecations after dart upgrade 2024-02-28 12:37:54 +01:00
Krille d94e6d2ac8
fix: Skip invalid keys which got corrupted in database 2024-01-26 09:41:55 +01:00
Krille 4906ae02cf
feat: Add missing localizations for key verification messages 2024-01-22 12:49:27 +01:00
krille-chan a9508d8941
refactor: Throw client init exception on client init fail
This changes the behavior
when client init fails. It
no longer calls logout and does
only clear local data while
returning all available
information in a new
exception type so that the
SDK consumer can decide
to logout or try again to init
with these information. This
should make it much more rare
that users loose their sessions.
2024-01-05 09:46:38 +01:00
Krille c3c770bc33
refactor: Remove duplicated copyMap method and fix type error
dynamic.copy returned a type
error so I reverted the previous
change of the copyMap
method to an extension. Also
I found out that we have used
two copyMap methods in the
SDK which did exactly the same.
I deleted the old one and
changed the tests.
2023-12-11 10:29:06 +01:00