Commit Graph

1181 Commits

Author SHA1 Message Date
Nicolas Werner 62780b5b2f Merge branch 'krille/fix-reactions-trigger-notifications' into 'main'
fix: Dont encrypt reactions

See merge request famedly/company/frontend/famedlysdk!974
2022-03-15 10:40:52 +00:00
Christian Pauly f1d422b89a fix: Dont encrypt reactions
This fixes that server
sends notifications for reactions.
2022-03-15 08:42:53 +01:00
Krille Fear 93b11dd8ca Merge branch 'krille/matrix-file-improvements' into 'main'
refactor: Make MatrixFile final and move all image calculation into isolate

Closes famedly/fluffychat#863

See merge request famedly/company/frontend/famedlysdk!972
2022-03-15 07:40:59 +00:00
Krille Fear 9fa5667234 refactor: Make MatrixFile final and move all image calculation into isolate
This makes all fields in a MatrixFile final and
the object therefore stateless. It also moves
all calculations into the isolate. After some
benchmarks it seems that this does not
really speed up the thumbnail creation
but it does no longer block the UI for
some seconds.
2022-03-15 08:27:40 +01:00
Nicolas Werner 83298cc98b fix: own profile containing mxid
There are a few ways to fix this. We could skip events, where we don't
have the state in memory yet or always do a /profile request and cache
that.

I chose to go with loading the event from the database if necessary. If
we have a room in the db, we should have our memberevent in the db. In
some cases we might not (if the server thinks our memberevent is super
redundant), but I think the spec doesn't really allow that and it
doesn't happen in practice. And even if it would, we probably would want
our member event ASAP. And if we have no rooms, we fetch it from the
server as before instead of constructing a member with an MXID as the
username.

fixes https://gitlab.com/famedly/company/frontend/frontend-issue-inbox/-/issues/65
2022-03-15 02:13:09 +01:00
Krille Fear 58f77cacdb fix: Rooms sort order after login
A two years old workaround prevented
the room sorting for the initial sync. But
this is definitely no longer needed.
2022-02-28 12:19:33 +01:00
Krille Fear ecc60efea9 fix: Change password using email authentication 2022-02-19 13:37:35 +01:00
Krille Fear 215de3b948 Merge branch 'krille/fix-background-uia' into 'main'
fix: UIA request stucks forever on unexpected matrixExceptions

See merge request famedly/company/frontend/famedlysdk!966
2022-02-19 11:32:40 +00:00
Krille Fear 1f8691dd70 Merge branch 'krille/thumbnail-size' into 'main'
chore: Increase default thumbnail size to 800

See merge request famedly/company/frontend/famedlysdk!968
2022-02-19 11:16:08 +00:00
Krille Fear d780ba77c4 chore: Increase default thumbnail size to 800 2022-02-19 11:29:10 +01:00
Christian Pauly c0ec4c3990 fix: sortRooms should be triggered right before onSync is called 2022-02-18 12:11:10 +01:00
Krille Fear a7f8838522 fix: UIA request stucks forever on unexpected matrixExceptions 2022-02-17 20:54:03 +01:00
Christian Pauly b30b340b43 fix: hasNewMessage true when last event is sent 2022-02-16 08:09:57 +01:00
td d543a0314d Merge branch 'krille/return-homeserver-summary' into 'main'
feat: Return homeserver summary on checkHomeserver

See merge request famedly/company/frontend/famedlysdk!963
2022-02-16 07:07:53 +00:00
Krille Fear 6b610d0115 feat: Return homeserver summary on checkHomeserver 2022-02-16 07:07:53 +00:00
cloudwebrtc 63d347de8e fix: Correctly end the call. 2022-02-15 22:02:56 +08:00
Christian Pauly 01dfdb29fd fix: Has new messages compares ts
This compares the origin server timestamp which might not map
to the real sort order of the timeline. But it is the best
solution for now.
2022-02-15 10:26:17 +01:00
Lanna Michalke ade7e7e910 fix: handle dynamic content for pinned events
Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-02-14 18:18:34 +01:00
Christian Pauly 68fcee98cb fix: Show reactions as last events and refactor hasNewMessage
Reactions are triggering push
notifications and should therefore
be displayed as last events
in the room list of a client.
The body should just display
the reaction key.
This fixes that rooms with
new reactions can't set to
read.
2022-02-14 15:06:22 +01:00
Christian Pauly 63e69eaa27 feat: Add hasNewMessages flag to room
This makes it possible to check
if muted rooms have unread
messages.
2022-02-14 10:48:57 +01:00
Christian Pauly 843afe7aa4 fix: Sort rooms after updating the UI on web
FluffyBox behaves different on
web transactions which leads
to the result that _sortRooms()
is performed before the
rooms UI can be there. This
leads to an unsorted room list
on web.
2022-02-14 09:30:33 +01:00
Krille Fear ff55444b52 Merge branch 'voip/fix-black-screen-with-system-button' into 'main'
fix: Fix black screen when end screensharing with system buttons.

Closes famedly-web#268

See merge request famedly/company/frontend/famedlysdk!955
2022-02-14 08:03:23 +00:00
Nicolas Werner 4a52540006 fix: exception on removed widgets
And widgets without a name.

fixes #267
2022-02-13 23:11:53 +01:00
cloudwebrtc 48c0d03bd2 fix: Fix black screen when end screensharing with system buttons. 2022-02-13 07:13:58 +08:00
Christian Pauly d7f0da3545 fix: Call onChange on remove aggregation event 2022-02-08 08:34:20 +01:00
Krille Fear 84e87279e8 fix: Remove onHistoryReceived which was broken anyway 2022-02-07 15:15:44 +01:00
Krille Fear 8e7db020bf fix: Remove aggregation event doesnt trigger onChange 2022-02-07 15:06:38 +01:00
Christian Pauly 846d5b0f46 fix: Add redaction events to timeline
The redaction events should not
be displayed in the GUI but it
is the job of the app to hide
them from the timeline while
the SDK should offer an
accurate list of ALL timeline
events by default.
2022-02-04 08:55:47 +01:00
Christian Pauly 12f846e101 fix: Resize image with compute by using const class arguments 2022-02-04 08:04:18 +01:00
Christian Pauly 01d13e7e2c refactor: Implement on history received in timeline
In order to make delta updates
for GUIs displaying the
timeline events easier, the
onHistoryReceived callback
has been introduced.
2022-02-03 09:38:39 +01:00
TheOneWithTheBraid fa6bd12294 feat: implement to get a room's widgets
Please note that this does not implement *modifying* widgets,
as this requires a full implementation of the Matrix Integration Manager
API first. This is to be done later.

Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
2022-02-02 08:38:56 +01:00
Christian Pauly 48572f8f10 fix: Trigger onChange for index on aggregation event update 2022-02-01 11:45:29 +01:00
Krille Fear f8a2a603ad Merge branch 'room-timeline-onupdate' into 'main'
feat: expose Timeline.onChange to Room.getTimeline

See merge request famedly/company/frontend/famedlysdk!943
2022-01-26 12:16:07 +00:00
TheOneWithTheBraid ed6f9c06b7 feat: expose Timeline.onChange to Room.getTimeline
Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
2022-01-26 12:52:30 +01:00
Nicolas Werner 999dbb4434 Merge branch 'voip/fix-call-breaks-caused-by-aborting-screen-sharing' into 'main'
Fix call breaks issue caused by aborting screen sharing.

Closes famedly-web#212

See merge request famedly/company/frontend/famedlysdk!938
2022-01-26 10:57:09 +00:00
Lanna Michalke 58f6cde0bf BREAKING CHANGE: high-level hadling of image sizes
- By using [package:image](https://pub.dev/packages/image), the
`MatrixImageFile` was given automatically generated width and heigth.
- Moreover, `MatrixImageFile` was given a factory to create the image
  file from a given maximal dimension.
- When sending images without explicitly providing a thumbnail, the
  thumbnail is automatically generated based on the provided image.
- The blur hash in generated automatically based on the provided image.

Fixes:
https://gitlab.com/famedly/company/frontend/famedly-web/-/issues/162, https://gitlab.com/famedly/fluffychat/-/issues/756

Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-01-19 13:10:17 +01:00
Marcel 1b11efc9eb fix: Use where and map instead of a loop and a removeWhere 2022-01-17 22:06:29 +00:00
cloudwebrtc 38c7109aee fix: fix call breaks issue caused by aborting screen sharing. 2022-01-17 21:16:36 +08:00
MTRNord d77d49430a fix: Remove sorts that shouldnt be required. 2022-01-15 21:54:13 +01:00
cloudwebrtc fba3c1e5f6 fix: Fix turn credentials format issue for safari. 2022-01-14 20:56:51 +08:00
Lanna Michalke cab03aa73b fix: Allow unpadded base64 decoding 2022-01-11 09:02:34 +00:00
Krille Fear b472dd7b92 fix: Room Member updates should always be cached
I think the commit which broke it was this: e3bd0cf1 It makes sure that only important state events get cached and room member events are not important state events and so new invites have no room member events cached. It makes sense to also allow room member events here to always be cached as they are special typed.
2022-01-08 10:44:22 +01:00
Krille Fear bcca5e11f2 feat: Let sendDefaultMessage return false on encryption failure 2022-01-07 17:12:20 +00:00
Krille Fear 6d8fabd1e0 Merge branch 'krille/fix-request-user' into 'main'
fix: Requested users are not stored

See merge request famedly/company/frontend/famedlysdk!930
2022-01-04 06:28:00 +00:00
Krille Fear e9e9dcb4aa Merge branch 'krille/newlinter' into 'main'
refactor: Remove unnecessary type checks and imports

See merge request famedly/company/frontend/famedlysdk!929
2022-01-03 11:45:06 +00:00
Christian Pauly 62a04b52d4 fix: Requested users are not stored
Fake Matrix Events for storing
need more paramters to
actually get stored. This fixes
it by creating a fake event ID
which should be unique.
2021-12-26 09:14:52 +01:00
Krille Fear 3bce8b4489 refactor: Remove unnecessary type checks and imports 2021-12-23 11:46:45 +01:00
Krille Fear 326f1f3223 fix: Localize reactions
In notifications in FluffyChat we
have "Unknown event m.reaction"
for reactions. But it should just be
enough to display the body so it
should look like:
"username: :thumbs_up_emoji:"
2021-12-23 11:43:00 +01:00
Krille Fear e5fde4f801 chore: bump version 2021-12-16 08:17:36 +00:00
Nicolas Werner d687973b01 fix: fallback in body for replies to replies 2021-12-15 19:21:41 +00:00
Sorunome fa5abfca92
fix: ignore 4xx errors when re-sending the to_device queue
The to_device queue was introduced to ensure integrity if e.g. the
server temporarily failed when attempting to send a to_device message.
If, for whatever reason, the server responds with a 4xx error, though,
then we want to ignore that to_device message from the queue and move on,
as that means that something different was fundamentally wrong. This
helps to fix the to_device queue clogging up, making clients incapable
of sending to_device events anymore, should such clogging happen.
2021-12-08 13:00:53 +01:00
cloudwebrtc c0e4008903 fix: Store the call state, fix the invite cannot be sent. 2021-12-06 19:32:33 +08:00
Sorunome b009ada0ac
fix: Allow consecutive edits for state events in-memory
The lastEvent was incorrect when trying to process an edit of an edit.
This fixes that by allowing consecutive edits for the last event.
2021-12-06 11:11:21 +01:00
Sorunome e3bd0cf139
fix: Only save state events from sync processing in-memory if needed
If we dump all state events from sync into memory then we needlessly
clog up our memory, potentially running out of ram. This is useless
as when opening the timeline we post-load the unimportant state events
anyways. So, this PR makes sure that only the state events of post-loaded
rooms and important state events land in-memory when processing a sync
request.
2021-12-06 11:09:50 +01:00
Krille Fear 43d5b1c523 fix: Add missing calcDisplayname global rules to client constructor
This two parameters were
already documented but
were missing in the
constructor. They can
also be final.
2021-12-03 12:34:52 +01:00
cloudwebrtc 4ebf5b2553 Merge branch 'voip/add-voip-function' of https://gitlab.com/famedly/company/frontend/famedlysdk into voip/add-voip-function 2021-12-02 23:20:16 +08:00
cloudwebrtc 61da76a26a chore: Implement the onAnsweredElsewhere function. 2021-12-02 23:18:01 +08:00
Krille Fear e5c8e4f4fe chore: Time unit replacement. 2021-12-02 15:12:59 +00:00
cloudwebrtc 9bc35a216a chore: Use `fireCallEvent` instead of emit. 2021-12-02 23:04:33 +08:00
cloudwebrtc 1f519703a8 fix: Fix the call function in flutter and dart. 2021-12-01 00:47:11 +08:00
cloudwebrtc 7efe123274 Merge branch 'main' into voip/add-voip-function 2021-11-30 22:31:10 +08:00
cloudwebrtc edeea47dec chore: Improve the code. 2021-11-29 22:26:18 +08:00
Krille Fear fe2d184faf fix: userOwnsEncryptionKeys always returns true
Actually the homeserver sends an
empty object in the deviceKeys map
so we need to check if this object
is there but is empty.
2021-11-28 10:37:56 +01:00
cloudwebrtc 01276bbf60 chore: add more interface for delegate. 2021-11-27 01:29:11 +08:00
cloudwebrtc 60618d1775 chore: Add WebRTC delegate interface. 2021-11-27 01:20:04 +08:00
Krille Fear 44934d5911 Merge branch 'krille/enable-e2eerecovery' into 'main'
chore: Enable E2EE recovery by default

See merge request famedly/company/frontend/famedlysdk!915
2021-11-26 13:05:13 +00:00
cloudwebrtc 72584d679c chore: bump version for webrtc_interface. 2021-11-26 20:33:57 +08:00
Krille Fear ac06864627 feat: Migrate olm sessions on database migration
This adds a getAllOlmSessions
endpoint to the database API and
implements them in both
implementations. This also
adds it to the database
migration.
2021-11-26 08:17:43 +01:00
Krille Fear 03418bfe8b chore: Enable E2EE recovery by default
We have disabled it by default to
prevent using workarounds as
long time solutions and to not
miss bugs. But in a federated
context we can not be sure that
we all Matrix clients are ever
bug free and we have now the
onEncryptionError Stream
anyway.
2021-11-25 15:48:17 +01:00
Krille Fear 79b74e2bbf fix: Remove user avatar 2021-11-25 09:00:59 +01:00
Nicolas Werner 64257735ac Merge branch 'krille/limited-timeline-behavior' into 'main'
fix: Limited timeline clears too much events

Closes #217

See merge request famedly/company/frontend/famedlysdk!907
2021-11-23 15:06:29 +00:00
Krille Fear bc6ec5e592 Merge branch 'krille/idb' into 'main'
feat: Implement FluffyBox database

See merge request famedly/company/frontend/famedlysdk!900
2021-11-23 15:00:42 +00:00
Krille Fear 01eb851364 fix: 2021-11-23 15:48:18 +01:00
Sorunome 17d8b4d25f Merge branch 'krille/add-clear-cache-command' into 'main'
feat: Add clear cache command

See merge request famedly/company/frontend/famedlysdk!908
2021-11-23 13:06:53 +00:00
Krille Fear ee21121a63 fix: Workaround for null boolean
deviceKeysList.outdated is not nullable but we have seen this error
in production: `Failed assertion: boolean expression must not be null`
So this could either be a null safety bug in Dart or a result of
using unsound null safety. The extra equal check `== true` should
safe us here
2021-11-23 13:53:07 +01:00
Krille Fear 921c694888 feat: Add clear cache command 2021-11-23 09:48:08 +01:00
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 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