Commit Graph

1722 Commits

Author SHA1 Message Date
Karthikeyan S f4b0a629c7
chore: add null check for remotePartyId before ignoring reject/hangup 2023-11-29 12:32:57 +05:30
Karthikeyan S 6b9be63a4d
fix: ignore reject/hangup events for a live call from a different device 2023-11-29 12:32:57 +05:30
Nicolas Werner 52a5485f7a
fix: don't delete the dehydrated device before we are sure the keys got saved 2023-11-28 11:02:43 +01:00
Nicolas Werner 2fca08725d
feat: Update dehydrated devices implementation to current MSC
BREAKING CHANGE: This replaces the old dehydrated devices
implementation, since there is no way to query what is supported easily
and supporting both would be complicated.

fixes https://github.com/famedly/matrix-dart-sdk/issues/1579
2023-11-28 11:02:35 +01:00
Krille 8e9bcc2d36
fix: Delayed encrypted event in timeline not added to aggregated events 2023-11-27 16:12:45 +01:00
Krille 06669cbcac
refactor: Store fetched presence in db and deprecate own cache 2023-11-27 15:48:21 +01:00
Krille 193f404885
refactor: Add SyncConnectionException to syncloop 2023-11-27 09:11:57 +01:00
Nicolas Werner 25f4353ab0
fix: key uploads only running once
There were several issues here. Key uploads in general failed, because
the await caused a Future<dynamic> to be returned, which failed type
checking.

But also we never unset our future, which was used for the online key
backup uploads, which meant we would very quickly stop uploading any
keys at all.
2023-11-24 17:42:57 +01:00
Krille 82b885dee0
feat: Add sendRaw command 2023-11-22 15:35:29 +01:00
Krille 029b648f26
fix: Do only convert linebreaks to br tags in p blocks
This changes the behavior
of the markdown method to
only convert linebreaks inside
of p blocks. I found no better
solution yet for the problem
as otherwise also lists
will have linebreaks between
the list items. Unfortunately
the default linebreak syntax
seems not to fulfill our needs.
2023-11-22 11:02:17 +01:00
Nicolas Werner 8b8a647cf9
chore: enable discarded_futures lint
BREAKING CHANGE: This changes the runInRoot method to not return a
future. As a user, if you need the result of an async computation passed
to runInRoot, please await it directly. Also the KeyVerification start
and a few call methods now return a future.
2023-11-17 12:59:27 +01:00
Nicolas Werner 5dc3adadfc
chore: enable avoid_bool_literals_in_conditional_expressions 2023-11-17 12:59:27 +01:00
Nicolas Werner a0970b7fcb
chore: don't manually enable default rules 2023-11-17 12:59:20 +01:00
Nicolas Werner e03826b1bb
Merge branch 'main' into krille/better-syncloop-error 2023-11-16 22:21:59 +01:00
Nicolas Werner 0b3542730d
Merge branch 'main' into krille/store-presences 2023-11-16 21:36:13 +01:00
Krille d1bbf57b6f
fix: Set presence when loading archive 2023-11-15 14:18:48 +01:00
Mohammad Reza Moradi d5447c62f7
fix: hangup on call crash 2023-11-15 08:49:35 +01:00
Krille 8cc863b1a3
feat: Store presences in database 2023-11-15 06:59:58 +01:00
td 1ab06cb01a
fix: clear local database on logout even if server timesout 2023-11-13 18:12:47 +05:30
Karthikeyan S 243275d644
Merge branch 'main' into karthi/fix-hangup-timeout 2023-11-06 17:31:22 +05:30
krille-chan b1b2b2ffe2
fix: catch correct exception type for connection problems 2023-11-05 09:52:08 +01:00
Nicolas Werner 37582a3a8e
fix: stale call checker leaks memory 2023-11-04 00:30:14 +01:00
td 579b8aa944
Merge branch 'main' into karthi/fix-hangup-timeout 2023-11-03 19:22:01 +05:30
Karthikeyan S 88110773ab
fix: call hangup on timeout race condition 2023-11-03 16:05:37 +05:30
Nicolas Werner 82492f92e1
chore: upgrade lints 2023-11-02 10:20:33 +01:00
Nicolas Werner 620187c772
Merge branch 'main' into braid/store-left-rooms-in-archive 2023-11-02 08:49:48 +01:00
Krille f0e4232930 refactor: Wait for room in sync until sync process and trigger cleanup call not before actually start clean up. 2023-10-23 12:30:14 +02:00
Krille 6f144198b7
fix: Do not convert linebreaks in pre blocks on markdown parsing 2023-10-23 08:39:26 +02:00
The one with the braid 5dea95f02c fix: Code style
Signed-off-by: The one with the braid <info@braid.business>
2023-10-20 14:58:56 +02:00
Clemens-Toegel f1fd6f43f9 chore: remove archived room on forget (#2)
Co-authored-by: Clemens Toegel <clemens.toegel@x-tention.at>
2023-10-20 14:04:11 +02:00
Clemens-Toegel 0ec6a64cc8 chore: store states to archived rooms (#1)
* chore: store states to archived rooms

* chore: PR fix

---------

Co-authored-by: Clemens Toegel <clemens.toegel@x-tention.at>
2023-10-20 14:04:11 +02:00
The one with the braid 053dddb76d chore: incrementally add left rooms to archive
- store left rooms in archive during sync (as well as they are removed
  on join already)
- refactor room archive code
- fix typo

Internal reference: SMC-385

Signed-off-by: The one with the braid <info@braid.business>
2023-10-20 14:04:11 +02:00
Krille 4e310f16d5 feat: Add methods to load all room keys from online key backup
This makes it possible to load
and sync all room keys
right after the bootstrap if the
app wants to do this.
2023-10-20 12:13:12 +02:00
Ray 4b51c1c5fd fix: fixed hardcoded historyCount 2023-10-20 11:25:45 +02:00
Krille 5c3c85ba3d
refactor: Trigger upload keys on sync and not in background job and upload them before logout 2023-10-20 10:18:05 +02:00
Krille b5b5cfee5e
fix: Convert linebreaks into br tags on markdown parsing
Removes two test cases in the markdown test which do not work anymore.
Reason for this is that just parsing a word inside of $$ word $$
katex is not valid anyway because katex is only made for mathematical
things. So the output is undefined behavior anyway.
2023-09-29 09:24:50 +02:00
Krille 5dd444daf2
refactor: Update markdown 2023-09-28 08:09:17 +02:00
Nicolas Werner 97bf7723dd fix: Wait for rate limit to pass while sending messages
Otherwise the user can't handle that exception themselves, since we
don't rethrow.
2023-09-21 13:04:57 +02:00
Krille 8ac86a883d
feat: Implement member change type
For easier handling and
comparing of m.room.member
state events to better
know what these event
actually changes.
2023-09-19 16:19:42 +02:00
Nicolas Werner dab7f6667e
Merge branch 'main' into nico/fix-okb-bootstrap 2023-09-19 14:02:18 +02:00
Nicolas Werner bf51e57e78
chore: remove redundant log message 2023-09-19 12:24:06 +02:00
Nicolas Werner 3fb77383a3
fix: wait for online key backup key to be cached on reset
Otherwise uploading the keys won't work, since the key backup is
"disabled".
2023-09-18 17:16:43 +02:00
Nicolas Werner 500e423c00 fix: storing the end of history pagination
At least in our CI this throws a null assertion error and since we
explicitly expect this to sometimes be null in our code, we should store
it as such.
2023-09-18 12:02:06 +02:00
Mohammad Reza Moradi c38cbbc8dc
fix: apply state event before decryption on leaved room 2023-09-18 11:33:17 +02:00
Nicolas Werner 5b47a647b6
fix: userOwnsEncryptionKeys returns true for empty device lists 2023-09-13 14:26:41 +02:00
Nicolas Werner cce3646339
fix: startDirectChat might return an unjoined room
If you create DM room, but the other party doesn't join it, they might
be unable to create a new DM using startDirectChat. Since creating a new
DM is pretty much the same as joining the invite, we try to join the
pending DM invite first and fall back to creating a new room if that
fails.
2023-09-04 13:27:55 +02:00
mErrenst b17f3a47f2
Merge pull request #1547 from famedly/krille/request-participants-cache
feat: Add option to not cache users in memory when requesting all of …
2023-08-16 09:15:56 +00:00
krille-chan 0c60ad7acd
feat: Add option to not cache users in memory when requesting all of a room 2023-08-13 08:16:11 +02:00
Krille dd64f4702a
fix: Has new messages is never true 2023-08-10 08:44:07 +02:00
The one with the braid 30c27f00a1
fix: direct message room name computation
Signed-off-by: The one with the braid <braid@famedly.com>
2023-08-04 08:17:17 +02:00
Nicolas Werner 4addccd9da
Merge pull request #1534 from famedly/nico/simplify-sorting
refactor: simplify UIA stage selection logic
2023-08-01 08:56:56 +00:00
Nicolas Werner 59693b7375
refactor: simplify UIA stage selection logic
(Also prevents a potential out of bounds exception)
2023-08-01 10:31:55 +02:00
Nicolas Werner b27fd4575d
Merge pull request #1535 from famedly/nico/fix-okb-reset
Make online key backup reset actually backup keys
2023-08-01 08:24:25 +00:00
Nicolas Werner a016709a40
feat: Upload keys on OKB reset
This does make the reset take longer on big accounts, but otherwise
users might sign out before the keys are uploaded, which makes the reset
more destructive than necessary. In the common case of not having any
keys it shouldn't make a difference.
2023-07-31 17:31:04 +02:00
Nicolas Werner eb0759caf5
fix: fix upload of old session after reset
Otherwise we would need to wait for a new inbound session to upload
them. It might increase disk usage a bit every 10 minutes.
2023-07-31 17:31:04 +02:00
Nicolas Werner 334c9e3b78
refactor: Simplify room sorting logic to make invite sorting more obvious
It wasn't quite obvious that invites were always sorted at the top, if
you just looked at the sort function. This makes it more explicit and
also makes invites always sort before favourited rooms.
2023-07-31 10:55:27 +02:00
td 66a53786e7
fix: do not proceed call if getUserMedia fails
fix: added a few missing awaits

fix: add a workaround for not having state updates for staleCallChecker till sync

chore: fix some logging
2023-07-10 14:19:16 +05:30
td d042f9e6ae
chore: pass event to redactedAnEvent and removedBy 2023-07-04 17:09:23 +05:30
td 538865f62a
chore: cleanup some eventTypes and unused variables 2023-06-27 13:46:39 +05:30
td bfda82bb45
chore: fix unexpected null when device is not known 2023-06-27 13:30:05 +05:30
Malin Errenst f310632a83
fix: Assign correct type to signedOneTimeKeys 2023-06-22 17:18:10 +02:00
td 6a0a252912
feat: qr key verification 2023-06-21 19:15:26 +05:30
Malin Errenst 395ef0eb8e
refactor: Use tryGet for type casts whenever possible 2023-06-21 15:04:46 +02:00
Malin Errenst 5943576b1b
refactor: Added type casts to match refactored matrix_api_lite 2023-06-16 12:42:10 +02:00
Malin Errenst 17df38b874
refactor: Added type casts for refactored dart_openapi_codegen 2023-06-16 12:41:29 +02:00
Krille b90c1b8ca7
fix: Do not display prevContent displayname and avatar for joined users 2023-06-14 12:54:18 +02:00
Krille d65dc721c3
fix: canRequestHistory should return false if prev_batch is null 2023-06-03 18:03:42 +02:00
td 2ebda5e6fc
chore: fix edited last events breaking db 2023-06-01 23:58:47 +05:30
Krille 85a21a6781
fix: Do not store global profiles in room states as members 2023-05-31 15:01:42 +02:00
Malin Errenst 8cb144aaae Merge branch 'krille/performance-warning' into 'main'
feat: Display performance warning when requesting more than 100 participants

See merge request famedly/company/frontend/famedlysdk!1301
2023-05-30 11:48:51 +00:00
Krille 0f36659ba7
feat: Display performance warning when requesting more than 100 participants 2023-05-30 13:11:38 +02:00
Krille 07ceee4171
refactor: Let bootstrap throw custom Exception InvalidPassphraseException so it is easier to catch 2023-05-30 09:41:10 +02:00
td c6b6c793d6 Merge branch 'krille/store-last-event-redacted' into 'main'
fix: Also update last event on redaction in store

Closes famedly/company/product-management#990

See merge request famedly/company/frontend/famedlysdk!1298
2023-05-30 06:58:40 +00:00
Reza 153005f4a7
chore: calculate unlocalized body 2023-05-17 08:37:41 +02:00
Krille 8f38006c18
fix: Also update last event on redaction in store 2023-05-16 13:33:57 +02:00
Malin Errenst ac0fdc1deb Merge branch 'td/moreMissingAwaitsbahh' into 'main'
chore: add missing awaits to to_device call events listener

See merge request famedly/company/frontend/famedlysdk!1295
2023-05-15 19:52:03 +00:00
td 26e0d0954d
chore: add missing awaits to to_device call events listener 2023-05-13 20:06:04 +05:30
td 8e4f4486b2
chore: add missing awaits to to_device call events listener 2023-05-13 20:05:09 +05:30
Krille c714574c3f
refactor: Check correct if null
This checks it in a more consistent way
and also makes developing new
databases easier as they
might set the json key but
set it null.
2023-05-11 12:17:53 +02:00
Krille 9c2f026b4d
refactor: Remove unused parameters 2023-05-11 09:24:41 +02:00
Nicolas Werner 47c54cb397
fix: mark DMs as DMs properly when joining
If we join first, it is possible that our member event is not the invite
event anymore. As such we should fetch that state first, before joining.
But also there is little reason not to mark the room as a DM
immediately. That prevents the room from temporarily becoming a group
room, that might be visible in the UI temporarily.

fixes https://gitlab.com/famedly/company/product-management/-/issues/1006
2023-05-09 16:09:01 +02:00
Malin Errenst cc377202da fix: remove deprecated sender_key occurrences 2023-05-08 09:12:14 +00:00
td 36070e23b7
fix: cast issues in getEventList 2023-05-05 19:31:08 +05:30
Krille e170325cae
refactor: Make parameters more clear and remove unused methods 2023-05-05 13:38:56 +02:00
Krille f21260b035
fix: Only request users which are valid mxid 2023-05-04 15:22:44 +02:00
Nicolas Werner 4abefa906b
fix: Always wait for account data to load before returning SSSS status
Otherwise it would be possible, that we haven't loaded account data, so
we return that cross-signing is disabled and then we load it and return
a different result. Might fix the sentry issue for that.
2023-05-03 17:11:00 +02:00
Krille 2c14af9a8b
fix: Reactions are sent encrypted 2023-05-03 13:01:10 +02:00
Nicolas Werner a250384eca Merge branch 'td/singleShotSyncBeforeStaleChecker' into 'main'
chore: oneShotSync before staleCallChecker

Closes famedly/company/product-management#658

See merge request famedly/company/frontend/famedlysdk!1284
2023-05-03 06:35:56 +00:00
td 444ba47022
chore: oneShotSync before staleCallChecker
fix: while singleShotStaleCallChecker code seems to be correct we are seeings some random disconnects in group calls, this makes sure we have all the to-device messages we are supposed to have before checking for stale calls
2023-04-29 19:47:13 +05:30
td f240ece32c
fix: updateMuteStatus after kConnected
fix: makes sure any state/race issues we had with sdp packets or cloned streams get fixed automatically
2023-04-29 19:33:34 +05:30
Malin Errenst a0669a505e Merge branch 'krille/set-read-marker-optional-eventid' into 'main'
refactor: Make optional eventId a named parameter

See merge request famedly/company/frontend/famedlysdk!1281
2023-04-28 08:50:26 +00:00
Krille 91617c1892
refactor: Make optional eventId a named parameter
This should not break the
API of consuming apps and
is more intuitive as the
parameter is nullable.
2023-04-28 10:03:04 +02:00
Krille c6f7da12d4
fix: Check the max server file size after shrinking not before 2023-04-28 09:26:54 +02:00
td 1928f292b0
fix: casting of a List<dynamic> to List<String> in getEventList and getEventIdList 2023-04-28 00:55:20 +05:30
Nicolas Werner 831938b8f5
fix: Skip rules with unknown conditions
Without this, when new rules are added with new conditions, we would
always match on them. This would mean all messages now notify. It is
better to skip them instead.
2023-04-26 19:00:24 +02:00
td 046e2caf7d
fix: allow passing a WrappedMediaStream to GroupCall.enter() to use as the local user media stream
currently in the app we start the group call (but do not enter it), then we use the localStreams provided by it to show the setup page (enable/disable media devices). This causes some issues because the user hasn't joined the group call so the member state events don't update and the group call is killed if they just sit on the setup call page. Also creating a group call, sends notifications in our apps but no one has entered it. With this MR, apps can get their own user media, then edit that stream on setup page add it to GroupCall.enter(stream). This way, a group call doesn't have to be started and we get to do the setup page as well.
2023-04-25 14:18:45 +05:30
Nicolas Werner 62b43bef56 Merge branch 'nico/private-receipts' into 'main'
feat: Support private read receipts

See merge request famedly/company/frontend/famedlysdk!1272
2023-04-21 16:37:25 +00:00
Nicolas Werner 663ab11ec5
feat: Support private read receipts
You can either set them to private on the client or overwrite the
behaviour for that on each readMarker call. This also handles incoming
thread receipts and tries its best to figure out what is the latest
receipt. This however breaks the old m.receipt account data event.
2023-04-21 18:31:15 +02:00
Kristian Grønås 101e892cd9
chore: Update image dependency to 4.0.15
Signed-off-by: Kristian Grønås <Kristian.Gronas@student.uib.no>
2023-04-21 06:22:09 +02:00
Nicolas Werner 7f519b5619 Merge branch 'main' into 'main'
Implement Thread creating/sending + added neccessary tests

Closes #351

See merge request famedly/company/frontend/famedlysdk!1262
2023-04-17 13:15:36 +00:00