Commit Graph

518 Commits

Author SHA1 Message Date
Christian Pauly f1d422b89a fix: Dont encrypt reactions
This fixes that server
sends notifications for reactions.
2022-03-15 08:42:53 +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 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 6b610d0115 feat: Return homeserver summary on checkHomeserver 2022-02-16 07:07:53 +00: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 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
MTRNord d77d49430a fix: Remove sorts that shouldnt be required. 2022-01-15 21:54:13 +01: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 3bce8b4489 refactor: Remove unnecessary type checks and imports 2021-12-23 11:46:45 +01: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
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
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
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
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
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 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
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 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 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 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
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 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
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 ebd5bc3d24
refactor: make room nullsafe 2021-10-28 00:54:25 +02:00
Nicolas Werner fb0a84d7b2
refactor: make client nullsafe 2021-10-25 16:34:02 +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
Jayesh Nirve 77ca7523d0 refactor: remove unused clientId 2021-09-24 16:05:05 +02:00
Christian Pauly 0125272b7e fix: Autodetect mimetype on file upload 2021-09-22 07:59:45 +02:00
Krille Fear e0e09c2f67 feat: Add waitForFirstSync parameter to init method
Just using the .init() method to wait for the client
to initialize is a more easy way than listen to onLoginStateChanged.
But by default it waits for the first sync.
This should be configurable.
2021-09-20 11:41:40 +02:00
Sorunome fe9145d580 fix: missing null check 2021-09-18 07:50:45 +00:00
Jindra d8f642372e fix: missing content-type when changing avatar 2021-09-15 09:35:58 +02:00
Krille Fear 1e2ccabe85 fix: Missing null fallback when update notificationCount
Previously when using RoomUpdate in the constructor the notificationCount to update
was never null and set to 0 if it was missing. Now that we are
no longer using it, I forgot to
add the null fallback at this point.
This leads to serious crashes in the apps at runtime
and thats why I bump the version here as well!
2021-09-13 16:42:55 +02:00
Christian Pauly 00771fc209 refactor: _updateUserDeviceKeys method 2021-09-13 14:58:07 +02:00
Krille Fear 56af96c7ea fix: Get direct chat from user ID method
The method was not type safe and therefore there
was no warning that with the sortOrder changes
now DateTimes are compared which leads to
an exception in the app if not using converting to milliseconds first.
2021-09-13 13:53:37 +02:00
cloudwebrtc ea34f0b82c feat: MSC2746: Improved Signalling for 1:1 VoIP. 2021-09-10 02:50:24 +02:00
Christian Pauly e13b00d127 refactor: Make RoomUpdate class null safe by removing it
RoomUpdate came from a time where we had no data model for
SyncUpdates but now we have and therefore this class is just
code duplication. This removes the class
and uses the SyncRoomUpdate class from
the package matrix_api_lite instead.
It needed a lot of refactoring at some places
where I also have removed some unnecessary null or type checks.
2021-09-08 12:31:55 +00:00
Christian Pauly 9c1f79359e refactor: Replace all logic regarding sortOrder
The current implementation of sortOrder can be made way more easier now
by just keeping the sortOrder of the list
and the timelineFragments in the hiveStore. This needed a huge
change but mostly removes a lot of code which can be done
way more easy now. This also needed some rewriting of the setState logic and changes to
the prevEvent calculation. This solution should also be more stable.
More information:
https://www.reddit.com/r/fluffychat/comments/pfnlhq/the_sort_order_of_matrix_timelines/
2021-09-02 07:13:38 +00:00
Christian Pauly d921f38734 feat: Pin invited rooms
Invitations should always be on top of the
room list. This makes it an optional parameter now which defaults to
true.
2021-09-02 06:43:06 +00:00
Sorunome 33d31cecd1
fix: Missing chatUpdate.prev_batch != null test
We *always* have to update the in-memory prev_batch if it is non-null
2021-09-01 17:42:49 +02:00
Sorunome 56817df437
fix: missing null check
It seems `device_keys` in the reply of `/keys/query` is not required. While synapse always
sent it, conduit did not, which resulted in an error.
2021-08-27 17:22:54 +02:00
Jayesh Nirve 42614bdfbd
Merge branch 'main' of gitlab.com:famedly/company/frontend/famedlysdk into td/fix-lastevent-preview 2021-08-26 02:42:36 +05:30
Christian Pauly 5621c9bdb0 fix: sortAtTheEnd for LeftRoomUpdate was not set
This fixes a bug where requesting
history on archived room leads to a
wrong sorted timeline.
2021-08-25 11:06:26 +02:00
Christian Pauly 2f35277e47 refactor: Change name of archive getter to function
This is more intuitive because it is
a function that loads something from
the server and doesnt directly return
something.
2021-08-25 10:36:58 +02:00
Christian Pauly cec08b3775 feat: cache archived rooms to access them with `getRoomById`
getRoomById searches now in the local cache for the given room and returns null if not
found. If you have loaded the [archive] before, it can also return
archived rooms.
This should make it much easier to display
archived rooms in the client.
2021-08-25 09:52:57 +02:00
Lukas Lihotzki 9087f08775 chore: mxc url in Uri 2021-08-23 11:05:47 +02:00
Jayesh Nirve 164a95ea29 clean stuff up? 2021-08-23 07:34:57 +00:00
Nicolas Werner a4ac9eab66 cleaner conditions 2021-08-23 07:34:57 +00:00
Jayesh Nirve 38235415eb fix: lastEvent in room preview now crespects edits order 2021-08-23 07:34:57 +00:00
Christian Pauly 9b7474e2f2 refactor: Update to dart 2.12 and opt out in all files
This also adds some missing license headers, I have detected while
using license header search&replace to add the
null safety opt out
2021-08-18 08:09:39 +02:00
Christian Pauly 37cfadd7e9 fix: Add space states to important events
We need the space state events in the important events to be able to
differentiate rooms and spaces in the room list.
2021-08-17 06:47:25 +00:00
Jindřich Pikora cf441e533d refactor: rename LoginState.logged to loggedIn 2021-08-03 12:26:17 +00:00
Nicolas Werner 162436cc8d fix: accidental OTK uploads on internal fakeSync 2021-08-02 20:52:09 +02:00
Christian Pauly e8d511a371 fix: Missing null checks in syncUpdate handling 2021-07-27 10:49:50 +02:00
Lukas Lihotzki 6d6830505f refactor: implement http timeouts in this package 2021-07-26 15:33:36 +02:00
Lukas Lihotzki 8665f092f4 chore: matrix_api_lite 0.4.0 2021-07-26 14:54:22 +02:00
Lukas Lihotzki bc2dac2ecc refactor: use more specific type 2021-07-26 14:40:15 +02:00
Nicolas Werner 179f73db3a fix: Upload OTKs if the otk_count field is missing
fixes #180
2021-07-26 09:47:05 +02:00
Christian Pauly 209035ffbd refactor: Use official Dart isolates
The isolates package is discontinued and not compatible
with the newest Dart version.
dart:isolate is not an option because importing this
library makes it impossible to run the matrix
SDK on dart web native. It just won't
build. So we now just depend on
that the flutter app pass through the compute method.
2021-07-21 12:34:43 +02:00
Sorunome cd5131daa5
fix: Add locking to sending encrypted to_device messages to prevent potential race conditions
Due to chunked lazy sending of megolm sessions it was in theory that we encrypted two olm
messages to the same device in different futures out-of-order. Introducing locking here should
fix this (increadibly rare, so far only theoretical?) race-condition
2021-07-11 13:06:39 +02:00
Sorunome e86353a412
fix: Provide a reasonable well-known fallback
If the well-known look fails (not json, 404, etc.) we should assume a
reasonable fallback (domain part with https prepended). As clients are
expected to call Client.checkHomeserver on the resulting domain anyways
we can safely assume this default, as it is still validated, if there
is actually a matrix homeserver running on that endpoint.
2021-07-11 12:26:48 +02:00
Christian Pauly 535a3b1d70 feat: Make it possible to get the current loginState
You may have missed the last valid loginState from the stream if you
listen too late to it. This makes it possible to
get always the current loginState.
2021-07-06 12:25:00 +00:00
Sorunome b664640a05
fix: Don't run syncs while the client is being initialized
Fixes that a sync could be done / processed while the client was still being initialized (loaded from database). This has lead to multiple bugs, such as the verified status of keys getting lost, notifications that come in during app startup displaying oddly, etc.

Additionally, the init lock was released too early; it is now released when the init is actually done.
2021-06-25 13:26:23 +02:00
Christian Pauly 768b0623da feat: Implement sync status stream
This new sync status stream gives the current status of the sync to make it possible
to display in the UI where the sync currently hangs and
what the progress is while updating 1000 rooms. So the app can display a
progress bar.
2021-06-20 15:59:59 +02:00
Christian Pauly a7ffe4835d feat: Also migrate inbound group sessions
For users who do not use the chat backup this could be useful.
2021-06-19 11:03:52 +02:00
Christian Pauly 69b52ba85b refactor: Move pedantic to dev_dependencies
The unawaited method from the pedantic package was a historic solution
for the case that you dont want to await a future in an async function.
But now we can do this with just a comment which
is the recommended way to do this now.
This makes it possible to have pedantic as a dev_dependency which means just one dependency less.
2021-06-18 10:15:59 +02:00
Christian Pauly c0c7f68bf3 chore: Rename to matrix 2021-06-18 09:58:25 +02:00
Christian Pauly 38d81d6093 fix: Migrate missing device keys
Currently we only migrate the client and SSSSCache but this leads to the
problem that we are no longer self signed after the migration.
We need to migrate all device keys too.
This also abstracts the migration code in a method. init() is too large already...
2021-06-18 09:16:12 +02:00
Christian Pauly 28dc8b4ff0 refactor: Improve clearing
This makes sure that the database is null after clearing so it will
be built again using the databaseBuilder.
Also this makes sure that the sync has
aborted BEFORE the clearing starts to
get rid of some warnings in the logs.
2021-06-14 11:00:41 +02:00
Christian Pauly fe06b96e93 fix: Do not logout before migration
Before the migration of the databases starts there is always a
logout signal sent. This was wrong.
This also cleans up the logs a little bit
and removes the useless parameters for the second init() call
because those are going to come from the new database anyway.
2021-06-14 08:29:03 +02:00
Christian Pauly 967712adfe feat: Implement database migration
This allows the user to give a legacyDatabaseBuilder to the client object
and in the init proccess the client checks by itself if there is old data in the legacy
database. If yes then it migrates them and
then deletes the old database. This uses the database_api and is agnostic to
the database implementation.
2021-06-11 10:10:18 +02:00
Christian Pauly 26261ecd5e feat: Add fromJson method for Room
This also included to move the room summary to a dedicated object inside
of the Room object because so it is easier to convert this to and from json.
2021-06-01 12:54:16 +02:00
Christian Pauly c3d47b16c6 CI: Use correct image 2021-05-25 10:46:34 +02:00
Christian Pauly c66e35c16c refactor: Create a clean database API 2021-05-20 07:36:03 +00:00
Christian Pauly d1b76b01c4 fix: Try clear and try close database 2021-05-17 14:36:10 +02:00
Christian Pauly bb9a8ff7e9 fix: SdkError Exception can be anything so should be dynamic 2021-05-17 14:17:46 +02:00
Nicolas Werner 6f52c0e2c3 fix: Allow SDK users to delete the db after logout 2021-05-17 07:38:53 +00:00
Lukas Lihotzki c196610998 chore: operation names from OpenAPI spec 2021-05-12 13:56:16 +02:00
Lukas Lihotzki b4f755388a refactor: high-level loops 2021-04-19 18:58:59 +02:00
Christian Pauly ffef732103 refactor: enable more linter rules
enable prefer_final_locals and prefer_final_in_for_each linter rules
2021-04-14 10:29:29 +02:00
Christian Pauly fb0177ac5f feat: Implement spaces 2021-04-12 09:24:20 +02:00
Lukas Lihotzki 2a2a170609 refactor: upgrade http package 2021-04-01 13:43:24 +02:00
Lukas Lihotzki 08043c06f4 refactor: high-level loops 2021-04-01 12:51:45 +02:00
Krille Fear 9bef8452d3 docs: Clean up dart documentations
Changing to `code` blocks where it cant be resolved to [stuff] things.
2021-03-16 12:32:21 +00:00
Christian Pauly 97daae3419 refactor: Update to matrix_api_lite 0.2.0
This introduces a minor breaking change in the login method.
It now uses correctly the AuthenticationIdentifier
and deprecates the user, medium and address parameter.
2021-03-09 19:14:53 +01:00
Krille Fear 57fde98fec Merge branch 'soru/less-sql-statements' into 'main'
chore: Reduce needed database accessess

See merge request famedly/famedlysdk!666
2021-03-09 18:12:40 +00:00
Sorunome c76dc0daa2
chore: Reduce needed database accessess 2021-03-09 18:28:58 +01:00
Christian Pauly 1f8285c3e7 refactor: Room states 2021-03-09 17:28:55 +00:00
Krille Fear 44ca96e544 refactor: Update pedantic
This enforces to NOT use curly braces in Strings where not needed
and not await non-future variables.
2021-03-09 17:28:04 +00:00
Krille Fear 0d8bddf708 Merge branch 'soru/fallback-keys' into 'main'
feat: Add fallback keys support

Closes #136

See merge request famedly/famedlysdk!653
2021-03-03 07:38:32 +00:00
Sorunome 498c7825a5
feat: Add fallback keys support 2021-03-02 16:17:32 +01:00
Sorunome 885141968c Merge branch 'krille/refactor-event-update' into 'main'
refactor: Deprecate eventType in EventUpdate

See merge request famedly/famedlysdk!661
2021-02-26 16:11:57 +00:00
Christian Pauly c9d3c327f6 refactor: Deprecate eventType in EventUpdate 2021-02-26 13:06:02 +01:00
Christian Pauly 29d0e673e0 fix: Sync error handling 2021-02-24 09:17:41 +01:00
Christian Pauly 72a7bc1637 feat: Implement upload sync filters 2021-02-18 14:03:58 +01:00
Christian Pauly c7f78bdaf5 fix: Dont catch sync errors 2021-02-18 13:01:13 +01:00
Christian Pauly fc8563849a feat: Custom Exception and return type for Change Homeserver 2021-02-13 09:08:56 +01:00
Sorunome fcb8d48bd7
feat: Add command parser 2021-02-09 18:19:38 +01:00
Christian Pauly d362d6db23 fix: Request history on limited timeline 2021-02-09 15:02:48 +01:00
Krille Fear 1154bc3606 Merge branch 'soru/replay-to-device' into 'main'
fix: Add to_device queue to prevent olm session corruptions

Closes #141

See merge request famedly/famedlysdk!640
2021-02-09 08:24:21 +00:00
Sorunome d373a06aa2
fix: Add to_device queue to prevent olm session corruptions 2021-02-08 14:57:19 +01:00
Christian Pauly 9faf07e31a refactor: New start direct chat method in client 2021-02-06 10:48:36 +01:00
Christian Pauly bd4c4a6131 chore: Add more bootstrap logging 2021-02-04 15:33:27 +01:00
Christian Pauly fefa140758 fix: Dont update user device keys if logged out 2021-01-27 11:15:41 +01:00
Christian Pauly d16c9eaf32 fix: Trailing slash homeserver from wellknown 2021-01-27 09:41:18 +01:00
Christian Pauly 7b29563caa change: requestHistoryOnLimitedTimeline by default false 2021-01-21 12:17:30 +01:00
Krille Fear c701268d71 feat: Do well known by default in check homeserver 2021-01-20 13:21:51 +00:00
Christian Pauly 4d1134a2db fix: Logout after failed init 2021-01-18 22:44:01 +01:00
Sorunome 4597ea3445 Merge branch 'krille/deprecate-sendername' into 'main'
change: Deprecate senderName

Closes app#1065

See merge request famedly/famedlysdk!615
2021-01-15 14:45:43 +00:00
Christian Pauly 03e17f890e change: Deprecate senderName 2021-01-15 14:24:30 +01:00
Sorunome 9d6005ca2a
fix: Smoothen up sending to rooms with extremely many devices 2021-01-14 18:47:51 +01:00
Christian Pauly fea4dea6a9 feat: Request history on limited timeline 2021-01-13 08:45:24 +01:00
Sorunome ef854b3b4c Merge branch 'krille/fix-sort-at-the-end' into 'main'
fix: Sort at the end

Closes app#1037

See merge request famedly/famedlysdk!607
2021-01-12 12:22:21 +00:00
Sorunome fddced2b3a
fix: Properly handle initial device key uploading failures and better handle OTK upload failures 2021-01-12 12:56:23 +01:00
Christian Pauly 00d03e9330 fix: Sort at the end 2021-01-08 13:40:10 +01:00
Christian Pauly 9ffecd845a chore: Update license header 2021-01-04 10:34:50 +01:00
Christian Pauly e450a09fb5 refactor: External matrix api 2021-01-04 10:26:29 +01:00
Sorunome f6589f9596
fix: Properly clear in-memory outbound sessions when clearing cache 2020-12-31 12:58:41 +01:00
Sorunome 08dcce6225
chore: Add more debugging logs 2020-12-30 18:50:40 +01:00
Sorunome 6723c01a31
feat: Lazy-send room keys, chunked and sorted by importance 2020-12-29 14:46:36 +01:00
Sorunome 3ff958de4e
fix: properly handle changed cross-signing keys 2020-12-29 14:37:09 +01:00
Sorunome 68afe362ce
feat: Start megolm sessions while typing 2020-12-28 16:14:07 +01:00
Sorunome ccd03ecd22
fix: Various small e2ee fixes 2020-12-28 14:49:55 +01:00
Sorunome c6f718adcc
fix: Sort state events of history requests correctly 2020-12-27 10:55:41 +01:00
Christian Pauly dacd007780 fix: Clear logs on clear() 2020-12-23 11:32:58 +01:00
Marcus Hoffmann 54fc29f203 clear cache fix 2020-12-22 17:34:50 +01:00
Sorunome 6f9deb5ae2
fix: Verify device signatures before storing devices and block those with invalid signatures 2020-12-22 10:22:42 +01:00
Christian Pauly 57286d4c28 feat: Use logger package 2020-12-19 12:04:25 +00:00
Sorunome d1ce075b5b
feat: Automatically cache storable files on upload 2020-12-17 11:59:31 +01:00
Christian Pauly 3856b618e8 refactor: Encryption errors 2020-12-15 08:24:55 +01:00
Christian Pauly 6657e073a0 refactor: Follow up clean up bootstrap 2020-12-11 09:57:45 +01:00
Christian Pauly b563aec7bb refactor: Add secretstoragekeycontent 2020-12-10 11:03:45 +01:00
Sorunome 49f0679fbf feat: Add bootstrapping 2020-12-10 08:13:24 +00:00
Lukas Lihotzki 88888a43f1 feat: set presence in sync 2020-12-09 16:02:42 +01:00
Christian Pauly f7768af44e fix: Clear init lock on failed init 2020-12-07 09:51:25 +00:00
Christian Pauly bec1761172 refactor: content parsing 2020-11-30 15:34:46 +01:00
Christian Pauly 323b203718 refactor: algorithm types 2020-11-30 14:26:31 +01:00
Christian Pauly 20ae1ae20e fix: Push Rule getter 2020-11-25 20:16:42 +01:00
Christian Pauly 0697d47cc2 refactor: Minor init refactoring 2020-11-19 17:02:07 +01:00
Christian Pauly 1e14cd3ff0 fix: Hotfix request archive 2020-11-09 19:09:38 +01:00
Christian Pauly ac4cded10f feat: Implement UIA for login 2020-11-09 17:48:27 +01:00
Sorunome b0043ea0e4
fix: Pick right DM room, if multiple are set 2020-11-08 19:30:28 +01:00
Christian Pauly f9f18641e3 refactor: Connection error handling 2020-10-29 10:42:05 +01:00
Christian Pauly 5381c3935c refactor: Check server 2020-10-26 08:33:25 +00:00
Christian Pauly 66e590073e refactor: Event Update Type 2020-10-22 13:01:35 +02:00
Sorunome d116a52ea9
fix: Better handle olm session recovery 2020-10-17 12:03:54 +02:00
Christian Pauly 8908f33393 fix: Logout from outside 2020-10-15 09:17:28 +02:00
Sorunome 2e941b85e9 fix: Delete files older than 30 days 2020-10-08 13:02:20 +00:00
Sorunome 74bd1d331b
fix: Messages being encrypted for too many devices 2020-10-04 14:20:17 +02:00
Sorunome ae79af6ea8
fix: store timestamps in milliseconds to fix decrypt error 2020-10-04 12:12:03 +02:00
Sorunome 877ff9963c
fix: Don't sort rooms too often 2020-09-27 10:54:54 +02:00
Christian Pauly 5019ebfeb5 feat: Auto retry send events 2020-09-21 16:51:40 +00:00
Christian Pauly adb907bbc4 fix: Clear on logout 2020-09-21 16:31:28 +00:00
Christian Pauly 864cbfa906 fix: Hotfix ignored user list 2020-09-20 10:37:36 +02:00
Christian Pauly 510de05304 fix: ignore list 2020-09-19 15:05:43 +02:00
Christian Pauly a77e776479 feat: Implement ignore list 2020-09-19 12:39:19 +02:00
Sorunome 024a27bfc2
fix: Back off of failed key queries 2020-09-18 10:24:14 +02:00
Christian Pauly b05e4da34f fix: Last event calculation 2020-09-16 10:23:37 +02:00
Sorunome 99d536b14f
feature: Upload to online key backup 2020-09-09 09:53:26 +02:00
Lukas Lihotzki e6d96ad8ed feat(sync): configurable sync 2020-09-07 11:03:24 +02:00
Christian Pauly e90793bef1 fix: Last message sort order 2020-09-04 09:48:35 +02:00
Christian Pauly 9142dcbeec fix: Database error handling 2020-08-26 09:40:30 +02:00
Christian Pauly 6fbee4ee05 test: Integrate E2EE tests 2020-08-25 13:19:57 +00:00
Lukas Lihotzki d6b97b8e78 feat: safe dispose while _sync 2020-08-21 17:20:26 +02:00
Christian Pauly 09ffa09404 Ignore old webrtc invites 2020-08-19 07:20:16 +00:00
Christian Pauly 50d97ebeb2 Fix unencrypted call events 2020-08-15 16:05:11 +02:00
Christian Pauly 215563ab92 Fix wrong call types 2020-08-15 15:17:17 +02:00
Christian Pauly 61b32e0bd9 Hotfix client 2020-08-14 18:22:31 +02:00
MTRNord 26586b6f02
style: Change package:famedlysdk imports to relative imports
Changing the imports from `package:famedlysdk` to relative imports allows us to easier move the files

Took 2 minutes
2020-08-13 10:40:39 +02:00
Christian Pauly fb9b505988 Krille/make client extend matrixapi 2020-08-11 16:11:51 +00:00
Christian Pauly 6170c79fe1 Improve logging 2020-08-06 09:35:02 +00:00
Christian Pauly 6779ab6624 Deprecate debug mode 2020-08-06 07:09:32 +00:00
Sorunome e1fa4983d0 try...catch fetching all encrypted devices, in case we aren't in a room 2020-08-04 09:17:52 +00:00
Sorunome 69431a1aff
some key verification fixes and temporarily disable transactions 2020-07-30 09:57:45 +02:00
Sorunome 6696a8b3ca Remove trailing slash in checkServer 2020-07-27 07:40:25 +00:00
Christian Pauly 4f2a8febf9 Fix request history 2020-07-21 07:34:30 +00:00
Marcel 3c0fbf784f [Requests] Add try_catch for utf8 decoding because dart really seems to have issues with json encoding and decoding. (also use camelCase)
Took 18 minutes
2020-07-20 13:43:55 +02:00
Marcel 9f6bd740ca [Requests] Make sure to not use the latin1 version of the json but instead convert the bytes to utf8 as required by various RFCs.
Took 14 minutes
2020-07-20 13:19:57 +02:00
Christian Pauly b8f80c7071 Fix room sorting 2020-07-20 07:46:46 +00:00
Christian Pauly c87450dafb Remove deprecated contactlist method 2020-07-02 10:41:23 +00:00
Sorunome ac720df3d2 Merge branch 'soru/performance' into 'master'
Greatly imporve initial loading performance

See merge request famedly/famedlysdk!377
2020-07-02 08:55:31 +00:00
Sorunome 7351319f28
address things 2020-07-02 10:32:11 +02:00
Sorunome 8f122195c5
re-work state lazy loading after discussion 2020-07-01 11:09:31 +02:00
Christian Pauly ad098aa246 Merge branch 'krille/catch-all-sync-errors' into 'master'
Catch all sync errors

See merge request famedly/famedlysdk!374
2020-06-30 14:47:40 +00:00
Sorunome b7b369923f
only lazy-load m.room.member, not store presence 2020-06-30 13:41:52 +02:00
Sorunome 2e3d8205b1
analyze and format 2020-06-30 12:21:03 +02:00
Sorunome a1f8120c59
Greatly imporve initial loading performance 2020-06-30 12:17:56 +02:00
Sorunome dbfaf7fa72
hide red herring sync errors 2020-06-29 15:27:14 +02:00
Christian Pauly 2f32791117 Catch all sync errors 2020-06-29 14:09:40 +02:00
Christian Pauly 0ac7aec071 Merge branch 'matrixfile-refactor-all' into 'master'
MatrixFile refactoring for thumbnails

See merge request famedly/famedlysdk!371
2020-06-29 12:00:26 +00:00
Lukas Lihotzki 842581699c MatrixFile refactoring for thumbnails 2020-06-29 12:00:26 +00:00
Sorunome 163cbdb923
Hotfix: account_data stored incorrectly in the database 2020-06-26 18:46:54 +02:00
Sorunome 35ba666c0a Merge branch 'krille/fix-sorting-again' into 'master'
Fix sorting again and again god damn

See merge request famedly/famedlysdk!365
2020-06-25 07:57:16 +00:00
Sorunome 5dda0c3623 Merge branch 'soru/cross-signing' into 'master'
Cross-Signing

See merge request famedly/famedlysdk!319
2020-06-25 07:53:30 +00:00
Christian Pauly 34425b035f Fix sorting again and again god damn 2020-06-25 09:51:24 +02:00
Christian Pauly c536af32f5 Fix wrong type for sort 2020-06-25 09:36:28 +02:00
Christian Pauly 2b393ff193 Sort invites on top 2020-06-25 09:27:01 +02:00
Christian Pauly 52e57f8dc2 Minor refactoring 2020-06-25 07:16:59 +00:00
Christian Pauly 13b3c0df4d Add room tag support 2020-06-24 09:22:08 +00:00
Sorunome f79a85ca71
Merge branch 'master' into soru/cross-signing 2020-06-24 09:26:22 +02:00
Sorunome 2999ceec9e potentially fix direct chats going missing 2020-06-22 06:48:30 +00:00
Sorunome e874a5e00b
add signature verification tests 2020-06-15 10:26:50 +02:00
Sorunome 4154c7d0eb
format and some analyze 2020-06-06 13:47:37 +02:00
Sorunome 4c60369b8d
migrate to new thingy! 2020-06-05 22:03:28 +02:00
Sorunome d29fb9abfe
Merge branch 'soru/modularize-e2ee' into soru/cross-signing 2020-06-05 18:59:58 +02:00
Sorunome f3f3231df6
add some encrypt / decrypt tests 2020-06-04 17:51:49 +02:00
Sorunome fcde6a2459
split encryption stuff to other library 2020-06-04 13:39:51 +02:00
Christian Pauly c6bf098644 Init matrix_api library 2020-06-03 10:16:01 +00:00
Christian Pauly bd00c066c8 Catch sync errors 2020-06-01 18:24:41 +00:00
Sorunome 9971e7377e
configurable verification methods 2020-05-30 13:55:09 +02:00
Sorunome 41a08d4c28
additional validation of received secrets 2020-05-30 13:13:42 +02:00
Sorunome c65b5948fc
Merge branch 'master' into soru/cross-signing 2020-05-29 08:54:33 +02:00
Sorunome 72fdb68e82
some fixes 2020-05-29 08:49:52 +02:00
Sorunome d672edf394 Make room key sharing requests (hopefully) more robust and spec-compliant 2020-05-29 06:49:37 +00:00
Sorunome 6e21cff0a7
fix error thingy 2020-05-27 21:49:49 +02:00
Sorunome dda0b17724
in-room verification to verify users instead of devices 2020-05-27 21:35:00 +02:00
Sorunome e4e4386178
signed vs verified logic 2020-05-27 17:37:14 +02:00
Sorunome 1c9da050c0
smoothen out verification and signature uploading 2020-05-26 15:58:14 +02:00
Sorunome c13f66c85f
in theory sign others keys 2020-05-25 15:30:53 +02:00
Sorunome 97a10c7de1
Merge branch 'master' into soru/cross-signing 2020-05-25 13:22:13 +02:00
Christian Pauly f7b29f3703 Ignore key requests from unknown devices 2020-05-25 07:31:17 +00:00
Sorunome 280cd4fc16
first SSSS stuff 2020-05-23 17:04:27 +02:00
Christian Pauly c01f75bafa Add olm error stream 2020-05-22 15:51:45 +02:00
Sorunome c9a0c5302a
format 2020-05-22 13:18:45 +02:00
Sorunome 29721f00a8
Merge branch 'master' into soru/cross-signing 2020-05-22 13:18:36 +02:00
Christian Pauly 27b4a620e5 Add code formatting CI job 2020-05-22 10:12:18 +00:00
Sorunome 74361fff0e
don't cache via db and properly handle invalid signatures 2020-05-22 11:04:27 +02:00
Sorunome eaefdb64ca
make that cleints can only use "verified" 2020-05-21 16:51:15 +02:00
Sorunome af961b99dc
get device verification status based on cross signing 2020-05-21 15:20:33 +02:00
Christian Pauly 998ee66650 Merge branch 'soru/null-device' into 'master'
make sure keys are valid

See merge request famedly/famedlysdk!313
2020-05-21 06:28:21 +00:00
Sorunome a3fc73dfc1
make e2ee recovery logic optional 2020-05-20 10:24:48 +02:00
Sorunome 0fabed9cc3
make sure keys are valid 2020-05-20 09:37:32 +02:00
Christian Pauly 11d788b68f Merge branch 'soru/auto-request-room-keys' into 'master'
Automatically request for keys from other devices, if not found

See merge request famedly/famedlysdk!308
2020-05-19 09:34:13 +00:00
Sorunome 9b67992a3a Automatically request for keys from other devices, if not found 2020-05-19 09:34:11 +00:00
Sorunome b2e5ad0880
fix notification count 2020-05-19 10:15:23 +02:00
Sorunome a613c84e27 Merge branch 'soru/async-sync-processing' into 'master'
decrypt events in sync loop, making it async

See merge request famedly/famedlysdk!310
2020-05-19 08:14:46 +00:00
Sorunome f734788eda Merge branch 'soru/rotate-outbound-sessions' into 'master'
Add rotation of outbound group sessions

See merge request famedly/famedlysdk!309
2020-05-19 08:11:19 +00:00
Christian Pauly b9d041d005 close database konditional 2020-05-19 08:05:17 +00:00
Sorunome 867b9c9123
forgot to hit ctrl+s *shame* 2020-05-19 09:58:59 +02:00
Sorunome c5e4e2c751
decrypt events in sync loop, making it async 2020-05-19 09:49:37 +02:00
Sorunome a0fe8f4bad
Add rotation of outbound group sessions 2020-05-18 18:33:16 +02:00
Christian Pauly 5166dd8d51 dispose client 2020-05-18 14:01:14 +00:00