Commit Graph

1242 Commits

Author SHA1 Message Date
Krille Fear 9cbe1099e5 fix: Limited timeline clears too much events
This fixes the bug that the
limited timeline flag also
clears all events from the
current SyncUpdate in an
open timeline.
2021-11-23 09:06:30 +01:00
Krille Fear 3338da4e09 fix: Ability to remove avatar from room and account
To remove an avatar the
client needs to send an
empty object. This is now
possible by making the
MatrixFile parameter nullable.
2021-11-22 19:36:38 +01:00
cloudwebrtc 18af7e0642 chore: Set client to final. 2021-11-22 23:08:52 +08:00
cloudwebrtc 12df5d8cdd chore: Use RTCFactory interface to create MediaStream, VideoRenderer. 2021-11-22 22:41:49 +08:00
Krille Fear 27c03b4fad fix: Request history in archived rooms
We have just forgotten to
set the prevBatch token in
the room object.
2021-11-22 10:37:26 +01:00
Krille Fear f3775fa5ba fix: Decrypt last event of a room 2021-11-22 10:18:44 +01:00
Krille Fear a61e1ae4a3 feat: Add commands to create chats 2021-11-21 13:40:41 +01:00
cloudwebrtc 5dfb196c90 chore: dart format. 2021-11-19 18:03:58 +08:00
cloudwebrtc 93b623f2d5 chore: Use webrtc interface to build the voip module. 2021-11-19 17:51:38 +08:00
Krille Fear b99a78476a refactor: Remove Sembast database implementation
It was a nice experiment but it
loading everything into memory
is just too slow for big
accounts.
2021-11-18 19:55:21 +01:00
Krille Fear 0532974022 Merge branch 'krille/sembast' into 'main'
feat: Implement sembast store

Closes #239

See merge request famedly/company/frontend/famedlysdk!892
2021-11-16 09:42:40 +00:00
Krille Fear f5051a5afe feat: Implement sembast store
refactor: Use typed store
2021-11-16 09:50:25 +01:00
Nicolas Werner ae5225f495 Merge branch 'krille/fix-start-chat' into 'main'
fix: Dont enable e2ee without encryption support

See merge request famedly/company/frontend/famedlysdk!893
2021-11-16 08:07:32 +00:00
td 1804838324 Merge branch 'krille/fix-crash-in-htmltotext' into 'main'
fix: HtmlToText crashes with an empty code block

Closes #249

See merge request famedly/company/frontend/famedlysdk!897
2021-11-16 07:27:09 +00:00
Krille Fear 66bf8e6ace fix: HtmlToText crashes with an empty code block 2021-11-16 08:18:07 +01:00
cloudwebrtc 56d9ba7d4a refactor: [WIP] Voip abstract interface. 2021-11-15 22:31:38 +08:00
Krille Fear 13658b7da8 chore: Trim formatted username fallback
A user has a mxid with a trailing "-" which
becomes a whitespace here. We should
trim those whitespaces after formatting.
2021-11-15 13:08:31 +01:00
Krille Fear b7565af56f fix: use originServerTs to check if state event is old
Due to server bugs or whatever it sometimes
happens that old state events appear
in the setState method in the room class.
Previously we checked if we already know
this event ID, but for this we needed to
check the timeline which is very fluid.
Also this is a database operation in a
non-async method which works in Hive but
not in Sembast.
Using originServerTs is not 100% safe as
well but should be more stable because
the chance that servers have veeery wrong
time (which is necessary here) is much
lower than the risk that the timeline
is not long enough to know the
old event.
2021-11-15 10:57:55 +01:00
Krille Fear c8c4562f70 fix: Dont enable e2ee without encryption support
This also adds a missing visibility
parameter to the
createGroupChat method.
2021-11-13 11:58:07 +01:00
Krille Fear f052957c0a fix: Change eventstatus of edits in prevEvent
Unfortunately the last fix
was not working.
This fixes it for real now and also
adds a test case to make sure it
never breaks again.
2021-11-11 09:48:50 +01:00
cloudwebrtc 0822e3809d chore: Null safety for voip.dart. 2021-11-10 21:47:16 +08:00
cloudwebrtc 09e24fd33e feat: Migrate voip code from famedly-app. 2021-11-10 21:40:36 +08:00
Nicolas Werner be617ee974 Merge branch 'krille/update_api' into 'main'
refactor: Update matrix_api_lite and use SyncUpdate constructors

See merge request famedly/company/frontend/famedlysdk!887
2021-11-10 11:40:49 +00:00
Nicolas Werner a78f64715b Merge branch 'krille/fix-last-event-edit' into 'main'
fix: Edits as lastEvent do not update

Closes #244

See merge request famedly/company/frontend/famedlysdk!888
2021-11-10 11:11:48 +00:00
Krille Fear d16c25b26d fix: Edits as lastEvent do not update
This fixes a bug where edit
events as lastEvents do not
update from SENDING status.
Because previously it only
checks if the event ID
matches.
2021-11-10 10:43:05 +01:00
Krille Fear 58b36a67a3 refactor: Update matrix_api_lite and use SyncUpdate constructors 2021-11-10 10:04:03 +01:00
Krille Fear 048b7faba0 fix: JSON parsing in decryptRoomEvent method
This makes the use of the
event content null safe and
type safe which fixes a
regression when sessionId is
null.
2021-11-10 09:19:40 +01:00
Krille Fear 872b3bff94 fix: Wrong null check in hive database 2021-11-10 09:09:24 +01:00
Nicolas Werner d2e7de4702
fix: crash on invalid displaynames 2021-11-09 21:27:55 +01:00
Krille Fear 9abe1ed81d fix: Dont enable e2ee in test verification DM room 2021-11-09 15:42:43 +01:00
Krille Fear 4cf88e2be6 feat: More advanced create chat methods
This includes a new simplified
API to create new direct and
group chats. It also handles
enabling encryption by
default.
2021-11-09 15:39:42 +01:00
Krille Fear 8116436da8 Merge branch 'krille/improve-start-up-time' into 'main'
feat: Make waiting on init db optional

Closes #235

See merge request famedly/company/frontend/famedlysdk!881
2021-11-09 14:35:13 +00:00
Krille Fear 475e810523 feat: Make waiting on init db optional
This can improve the start-up time of apps.
The three big db reads on init are
loading account data, rooms and
device keys.
This makes it now possible to let
them run parallel
(while it may depend on platform
if this has any effect)
and the init() method can skip
awaiting them. They will
be at least awaited before handling
the first received sync.
So the app can already display the
room list before device keys are
loaded and request the first sync
from the server before anything
else is loaded from the DB.
2021-11-09 15:27:48 +01:00
Nicolas Werner c443b239b4 Merge branch 'krille/timeline-set-read-marker' into 'main'
refactor: Move setreadmarker functionality to timeline

See merge request famedly/company/frontend/famedlysdk!879
2021-11-09 14:14:43 +00:00
Krille Fear e313426dd9 refactor: Move setreadmarker functionality to timeline
Apps had a hard time to just set
the marker for the last event.
The lastEvent in the Room may
not be the actual last event
because we ignore several
event types there. Therefore
it makes sense to refactor
the setUnread method.
Now the timeline class has an
easy method to set the read
marker to the last synced
event, which can only be
known by the timeline if we
want to avoid another DB access.
2021-11-09 14:56:59 +01:00
Nicolas Werner 7f9a75a43d Merge branch 'krille/timeline-auto-update-list' into 'main'
feat: Add onInsert, onRemove and onUpdate cb to timeline

See merge request famedly/company/frontend/famedlysdk!880
2021-11-09 13:08:42 +00:00
Krille Fear 315ed7bdcb feat: Add more benchmarks for sync, timeline, init
This also disables benchmarks if loglevel is higher than debug.
2021-11-09 10:03:59 +01:00
Krille Fear e1f93637b3 feat: Add onInsert, onRemove and onUpdate cb to timeline
This makes it finally possible to
use Flutters AnimatedListView with
our Timeline class and in web we
can now update single elements
instead of the whole timeline
on every change which should
be quiet good for the
performance
2021-11-09 09:55:26 +01:00
Krille Fear 3e1aee6fcd fix: Null error in get own profile
On converting a User object to
a Profile object now leads to an
error. This fixes it.
2021-11-05 12:21:48 +01:00
Krille Fear 9be87918f1 refactor: Make room in Event class not nullable 2021-11-04 14:21:04 +01:00
Krille Fear eb200afe18 refactor: download method should not return null
If the decryption fails, it should
throw an exception and not
return null.
2021-11-04 12:22:20 +01:00
Sorunome 5c87b560b9
fix: obay explicitly set ports in mxc URLs 2021-11-03 08:54:04 +01:00
Jindra a0bab1b587 feat: choose memberships returned by requestParticipants() 2021-11-02 09:27:00 +01:00
td 3130931f0d Merge branch 'krille/dont-upload-keys-after-logout' into 'main'
fix: Do not upload keys after logout

Closes #213

See merge request famedly/company/frontend/famedlysdk!866
2021-10-29 13:21:01 +00:00
Krille Fear 766b27427a Merge branch 'td/invite-update' into 'main'
fix: add room invite update to roomStateBox, so invites don't show empty room when app is restarted

Closes #228

See merge request famedly/company/frontend/famedlysdk!865
2021-10-29 13:17:30 +00:00
Nicolas Werner 6ee5771334 Merge branch 'nico/nullsafe' into 'main'
Make SDK nullsafe

Closes #201

See merge request famedly/company/frontend/famedlysdk!867
2021-10-28 16:25:25 +00:00
Krille Fear 176dbbeda9 fix: Do not upload keys after logout
This should fix a race condition where uploading keys is still ongoing
after user has already logged out.
2021-10-28 16:46:45 +02:00
Nicolas Werner b6eed6daff
fix: don't escape @ 2021-10-28 16:46:15 +02:00
Nicolas Werner 7d78233bf0
refactor: remove literal boolean comparisons leftover from nullsafety conversion 2021-10-28 14:40:22 +02:00
Nicolas Werner 6e20c53b01
refactor: remove redundant null checks 2021-10-28 14:32:09 +02:00
Nicolas Werner 6abd9e7e22
refactor: nullsafe event test 2021-10-28 03:44:01 +02:00
Nicolas Werner ebd5bc3d24
refactor: make room nullsafe 2021-10-28 00:54:25 +02:00
Jayesh Nirve b955318edb
fix: add room invite update to roomStateBox, so invites don't show empty room when app is restarted 2021-10-26 16:00:22 +05:30
Jindra 06281d1361 refactor: add export & order package exports 2021-10-25 17:51:20 +02:00
Nicolas Werner fb0a84d7b2
refactor: make client nullsafe 2021-10-25 16:34:02 +02:00
Nicolas Werner 17fd1f22b3 refactor: make event nullsafe 2021-10-25 10:10:25 +00:00
Krille Fear d2ee73f96f chore: Bump version 2021-10-25 11:19:45 +02:00
Krille Fear 7a85d52d93 fix: Remove unnecessary null check 2021-10-25 11:11:55 +02:00
Krille Fear 7d5652e9a3 fix: Remove duplicated import 2021-10-25 11:11:17 +02:00
Krille Fear 9193950970 fix: Auto update room states
Room states are ignored if the event with the same event ID
is already known in the database. But
because of the event is stored in the
database and after this
setState in the Room class is called,
an event is always "known" and
therefore auto updating was broken.
2021-10-25 10:55:54 +02:00
Krille Fear faba36d476 fix: Missing null check in a nested json map 2021-10-18 15:45:29 +02:00
Jindra 2b8782c699 fix: delete forgotten files caused by mergetool 2021-10-14 15:37:43 +02:00
Jindřich Pikora c6e0359522 refactor: Change event status to enum 2021-10-14 13:31:07 +00:00
Nicolas Werner d5e5500ac5 refactor: make timeline nullsafe 2021-10-14 10:50:18 +00:00
Nicolas Werner 8146aa05b8 refactor: make user nullsafe 2021-10-14 10:27:34 +00:00
Nicolas Werner 978c3bb994
refactor: make voip_content nullsafe 2021-10-13 17:03:34 +02:00
Nicolas Werner 60956bde00 chore: port the remaining encryption files to nullsafety 2021-10-13 13:58:21 +00:00
Krille Fear 3ae42d1a88 fix: Type error when using CryptoKey in dart web
In Dart Web when using CryptoKey we
get a type error. When using the html version of it
it seems to work fine.
2021-10-13 12:30:04 +00:00
Lukas Lihotzki 3130139bde refactor: prepare null safefy for user.dart
With this commit, the migration tool needs to do 8 fewer changes.
2021-10-11 19:58:26 +00:00
Sorunome f811e45102 fix: events with unknown users having invalid mxids
This caused issues down the line where the sender id was assumed to
be a valid matrix identifier
2021-10-11 19:49:10 +00:00
Lukas Lihotzki b516bd1005 refactor: add and use constructor with named parameters 2021-10-08 14:26:23 +02:00
Lukas Lihotzki 66f29c7685 refactor: move voip content in its own file 2021-10-08 14:26:23 +02:00
Krille Fear 3603dae312 feat: Calc benchmarks for hive operations on init 2021-10-07 12:18:13 +00:00
Lukas Lihotzki a7818bbd0f refactor: null safety for all utils 2021-10-05 15:41:25 +02:00
Christian Pauly 687a6341f1 fix: Sent events are sorted in SENDING timeline
Events with a status of 1 should be sorted in the normal timeline.
They should not be stucked at the bottom. This fixes a bug
where a limited timeline flag
can stuck a SENT event at the bottom of
the chat forever.
2021-10-04 17:45:27 +00:00
Lukas Lihotzki 4bd659fd56 style: remove unneeded trailing comma 2021-09-30 15:53:43 +02:00
Lukas Lihotzki 85004e1faf refactor: capture member variables as finals 2021-09-30 15:53:43 +02:00
Lukas Lihotzki 41d905ca60 refactor: use more ?. 2021-09-30 15:53:43 +02:00
Nicolas Werner 71e5ec1bb5 style: use map entry with explicit types over cast 2021-09-30 12:58:37 +00:00
Nicolas Werner 6f7f7100e1 fix: use explicit type in fold instead of cast 2021-09-30 12:58:37 +00:00
Nicolas Werner 7dd176c278 fix: apply review feedback 2021-09-30 12:58:37 +00:00
Nicolas Werner 08bbb3f6f5 fix: prefer ! over ? 2021-09-30 12:58:37 +00:00
Nicolas Werner d15c71e5b3 fix: pre vs postcrement confusion 2021-09-30 12:58:37 +00:00
Nicolas Werner e5682fcb91 refactor: remove clientid from encryption code 2021-09-30 12:58:37 +00:00
Nicolas Werner 1c838e3be8 fix: Cleanup nullsafe encryption a bit 2021-09-30 12:58:37 +00:00
Lukas Lihotzki da80658c09 refactor: simplify device_keys_list.dart 2021-09-30 12:58:37 +00:00
Nicolas Werner a196b53219 refactor: nullsafe encryption 2021-09-30 12:58:37 +00:00
Sorunome 259c9cade6
fix: missing range check
When requesting history the `start` parameter could become larger than the loaded events
from the database were, resulting in an error when attempting to request history.
2021-09-30 14:34:28 +02:00
Lukas Lihotzki 1d0202e14e refactor: null safe matrix_id_string_extension 2021-09-27 12:59:51 +00:00
Lukas Lihotzki 3b1c6e3d2b refactor: arbitrary components in _parseIdentifierIntoUri 2021-09-27 12:59:51 +00:00
Lukas Lihotzki fb0ea2efc3 refactor: parseIdentifierIntoParts 2021-09-27 12:59:51 +00:00
Lukas Lihotzki 7fce5b6040 refactor: inline parseQueryString in parseIdentifierIntoParts 2021-09-27 12:59:51 +00:00
Lukas Lihotzki 8ea01fcee0 refactor: simplify parseQueryString in parseIdentifierIntoParts 2021-09-27 12:59:51 +00:00
Krille Fear 62fe7a1704 fix: New verification requests on requesting history
If requesting history happens to contain a m.key.verification.request we currently create a new key verification object and push it to the client.
This fixes it.
2021-09-27 14:51:25 +02:00
Jayesh Nirve 77ca7523d0 refactor: remove unused clientId 2021-09-24 16:05:05 +02:00
Lukas Lihotzki 42434761e8 chore: dart analyze fix 2021-09-23 14:57:30 +02:00
Lukas Lihotzki 5da26a6923 refactor: null safe commands_extension 2021-09-23 00:15:05 +00:00
Lukas Lihotzki 01c3b4d0bc refactor: null safe MatrixFile 2021-09-22 23:40:21 +00:00
Sorunome b455a54304 fix: Less log clutter about tags 2021-09-22 23:32:27 +00:00
Sorunome d8986f1d10 fix: Add type checkings for User.displayName 2021-09-22 23:00:36 +00:00