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
Christian Pauly
7c0dd5d8fd
fix: Broken nested accountData content maps
...
If you call BasicEvent.fromJson the given content is copied first
which recursively makes sure
that the Map is from type
Map<String,dynamic>.
Using just the constructor doesnt have this which can lead that nested Maps in
the content is InternallinkedHashMap and
therefore lead to type errors.
2021-07-06 08:11:30 +02:00
Christian Pauly
ebc9be250d
fix: Mark unsent events as failed
...
In Moor this was implemented but forgotten in Hive.
Events with status 0 (not sent yet) should be marked as failed on restart.
In fact they should be marked as failed if older than 1 minute. To not have a big startup job which iterates through all events in the database
we just do a time check when opening a room where we iterate through all events anyway.
The new implementation is now in the constructor of the Event and therefore
independent from the database implementation.
2021-07-05 08:37:46 +02: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
96d28a1b76
feat: Implement migration for hive schema versions
2021-06-20 10:31:17 +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
4dc62f6150
fix: Make sure hive keys only contain valid characters
...
There are some matrix IDs like room IDs which contain for example emojis.
This is valid from the spec and some people hack their Synapse to have this.
2021-06-19 10:51:17 +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
14ee16fe16
feat: Implement new Hive Database
...
The hive database now implements the whole API except for storing files which
should be better done by the flutter_cache_manager package inside of the
flutter app. All tests already run with Hive now but the Moor database is still
tested too. We needed to change some wait jobs in the tests because the Hive
database is not 100% in memory for the tests like Moor.
For now both database implementations are equal and the developer can pick
which one to use but we plan to get rid of Moor in the future.
2021-06-16 08:43:33 +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
c387b33e9f
refactor: Make support for file storing optional in database API
2021-06-01 15:27:18 +02:00
Christian Pauly
ab0ff46900
refactor: Remove types for timeline callbacks
...
These types weren't that helpful anyway and their names were not compatible
with the new linter rule of Flutter 2.2.
2021-06-01 12:57:52 +02:00
Christian Pauly
73db010db4
fix: Make QueuedToDeviceEvent store content as String OR Map
...
Temporary fix to stay compatible to Moor AND a key value store
2021-06-01 12:56:43 +02:00
Christian Pauly
d0f67f914a
refactor: Add sortOrderKey and check for this while Event creation
...
This makes it easier to write a store which just stores the Event json and
does not have a dedicated scheme for
each object like Moor has.
2021-06-01 12:55:45 +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
9631cea83a
feat: Add toJson method for StoredInboundGroupSession
2021-06-01 12:51:17 +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
Christian Pauly
70ee808911
feat: Enhanced alias handling
2021-05-01 09:26:46 +02:00
Lukas Lihotzki
fdf650abd5
refactor: avoid if-condition based on bit value
2021-04-26 18:48:54 +02:00
Lukas Lihotzki
b4f755388a
refactor: high-level loops
2021-04-19 18:58:59 +02:00
Lukas Lihotzki
71fdd28a8a
refactor: await unconditionally
2021-04-16 14:19:42 +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
Lukas Lihotzki
545ce26e39
style: fix format and lint
2021-04-12 14:49:03 +02:00
Lukas Lihotzki
ac9df588d1
chore: recreate database.g.dart
2021-04-12 14:49:03 +02:00
Lukas Lihotzki
d413f54f10
refactor: use OpenSSL for file e2ee
2021-04-12 14:49:03 +02:00
Lukas Lihotzki
761138a56d
refactor: use OpenSSL for AES
2021-04-12 14:49:01 +02:00
Lukas Lihotzki
7faf05fe90
refactor: selectable hash for pbkdf2
2021-04-12 14:48:38 +02:00
Lukas Lihotzki
a25d1932ee
fix: fast pbkdf2 with OpenSSL
2021-04-12 14:48:38 +02:00
Lukas Lihotzki
4f32168017
chore: upgrade to markdown 4.0.0
2021-04-12 14:48:38 +02:00
Lukas Lihotzki
285b14912a
chore: null safe crypto dependencies
2021-04-12 14:48:36 +02:00
Christian Pauly
fb0177ac5f
feat: Implement spaces
2021-04-12 09:24:20 +02:00
Lukas Lihotzki
f69acda419
refactor: use parameters in EncryptedFile constructor
2021-04-06 18:57:34 +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
Christian Pauly
0ceb2b26df
refactor: Constants names
2021-03-30 12:43:50 +02:00
Lukas Lihotzki
3d55abdd11
chore: upgrade to ffi 1.0.0
2021-03-29 16:37:29 +02:00
Christian Pauly
9012ce6b2c
fix: Display errors from isolates in the logs
2021-03-17 09:46:13 +01:00
Christian Pauly
0a9f8497e2
chore: Make bootstrap logs more chatty
2021-03-17 08:22:22 +01: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
Krille Fear
9626c64993
docs: Fix deprecation warning
2021-03-16 09:23:44 +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
5cf97886b4
Merge branch 'soru/strip-at-room' into 'main'
...
feat: Escape @room in the reply fallback when replying
See merge request famedly/famedlysdk!667
2021-03-09 18:12:47 +00: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
Krille Fear
d43d4bedee
Merge branch 'soru/fix-ssss-cache' into 'main'
...
fix: A few ssss fixes
See merge request famedly/famedlysdk!668
2021-03-09 18:12:30 +00:00
Sorunome
6d171542af
feat: Escape @room in the reply fallback when replying
2021-03-09 18:29:13 +01: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
Sorunome
7ef288ec91
fix: A few ssss fixes
2021-03-09 18:28:42 +01: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
Christian Pauly
5c35799e18
refactor: Request user
2021-03-01 10:32:04 +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
Sorunome
5431056c1c
Merge branch 'krille/implement-canrequesthistory' into 'main'
...
feat: Implement can request history calculation
See merge request famedly/famedlysdk!659
2021-02-26 16:09:17 +00:00
Christian Pauly
b8659213ae
feat: Implement can request history calculation
2021-02-26 13:48:29 +01: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
Sorunome
e7c8e754a1
chore: Update matrix scheme parsing to match updated MSC
2021-02-23 16:34:43 +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
Nicolas Werner
ac1ad1b897
fix: escape attributes in markdown less aggressively
2021-02-17 22:56:31 +01:00
Sorunome
681b27e269
fix: Don't allow transitive trust unless it is for ouself
2021-02-15 12:19:05 +01:00
Sorunome
34b15e45fc
fix: Better logic when to auto-trigger self-sign
2021-02-13 15:03:10 +01:00
Sorunome
6c2fc1679a
feat: Auto-selfsign and auto-cache when opening ssss keys
2021-02-13 14:55:09 +01:00
Krille Fear
fb5a0bc6a2
Merge branch 'soru/membership-null' into 'main'
...
fix: Make defaults catch if constructor is null
See merge request famedly/famedlysdk!647
2021-02-13 10:38:49 +00:00
Christian Pauly
fc8563849a
feat: Custom Exception and return type for Change Homeserver
2021-02-13 09:08:56 +01:00
Sorunome
f08dabaf03
fix: Make defaults catch if constructor is null
2021-02-11 12:09:44 +01:00
Marcus
ff04b1cce5
Merge branch 'krille/uia-cancel' into 'main'
...
feat: Implement cancel uiarequest
See merge request famedly/famedlysdk!644
2021-02-10 12:46:10 +00:00
Krille Fear
6d7ab8e1d4
Merge branch 'soru/cancel-broadcast-verify' into 'main'
...
fix: Allow to broadcast cancels during key verification
See merge request famedly/famedlysdk!643
2021-02-10 12:44:21 +00:00
Christian Pauly
fd05f642d8
feat: Implement cancel uiarequest
2021-02-10 13:41:09 +01:00
Sorunome
2d70360a8d
fix: Better detection if x-signing and megolm backup is enabled
2021-02-10 13:35:45 +01:00
Sorunome
d07b663866
fix: Allow to broadcast cancels during key verification
2021-02-10 13:05:09 +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
Sorunome
0462863ce6
fix: Cache ssss keys if using an existing ssss in bootstrapping
2021-02-03 14:47:42 +01:00
Sorunome
8a4af0c0ea
chore: add keyOrPassphrase to cross-signing selfVerify
2021-02-03 13:02:38 +01:00
Sorunome
0c4db25d05
feat: Add a way to string-encode a recovery key
2021-02-03 11:34:56 +01:00
Sorunome
650484c306
Merge branch 'krille/olmerrorhandling' into 'main'
...
change: Olm exception handling
See merge request famedly/famedlysdk!633
2021-02-03 10:09:43 +00:00
Krille Fear
1236e0bec2
Merge branch 'krille/bootstraptrycatch' into 'main'
...
chore: More try catch in bootstrap
See merge request famedly/famedlysdk!630
2021-02-03 10:08:37 +00:00
Krille Fear
a492fc8f96
Merge branch 'krille/updateuserdevicekeys' into 'main'
...
fix: Dont update user device keys if logged out
See merge request famedly/famedlysdk!628
2021-02-03 10:08:31 +00:00
Krille Fear
f58da0c33f
Merge branch 'krille/invite-direct-chat' into 'main'
...
chore: Determine invites as direct chats too
Closes app#1110
See merge request famedly/famedlysdk!624
2021-02-03 10:08:24 +00:00
Christian Pauly
9fac03639e
change: Olm exception handling
2021-02-03 11:01:01 +01:00
Sorunome
21a5854fbf
fix: Attempt event decryption on fetching replied events
2021-02-02 12:51:43 +01:00
Christian Pauly
ad39e3af25
chore: More try catch in bootstrap
2021-01-29 11:18:18 +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