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
Sorunome
efb5842959
fix: Implement dummy transactions for hive
...
That way some concurrency bugs might be fixed, such as if two sync
requests are processed at the same time. That can e.g. happen if you
request history while a sync request is already being processed.
2021-09-01 19:11:46 +02:00
Nicolas Werner
8b46fa3fc2
fix: room account data key/type returned encoded
...
We uri encode all hive keys. But in some cases we never decode them.
This leads to fun issues like SSSS being unreadable after restart.
fixes https://gitlab.com/famedly/company/frontend/famedlysdk/-/issues/179
2021-09-01 16:37:51 +00:00
Christian Pauly
62694248b9
refactor: Make UIA Request null safe
2021-08-30 09:26:34 +02:00
Christian Pauly
2589206851
refactor: Null safe QueuedToDeviceEvent and fix CamelCase filename
2021-08-30 09:20:17 +02:00
Christian Pauly
1fd40dd186
refactor: Make database null safe
2021-08-30 09:20:17 +02:00
Christian Pauly
d75b27a0cd
refactor: Ignore import_of_legacy_library_into_null_safe
2021-08-30 09:20:17 +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
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
Jayesh Nirve
c4c1c676da
fix null check
2021-08-23 07:34:57 +00:00
Jayesh Nirve
572402980c
fix null check
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
86041513f8
refactor: Remove deprecated moor database
...
We have used some data models which were only used in moor in the tests.
I needed to rewrite them in the original data as well.
Also now the "fake database" on native is the same like on web now with hive.
2021-08-17 10:11:59 +02:00
Marcus
f91f662c75
chore: update to matrix_sdk_lite 0.4.1
2021-08-05 12:10:45 +00:00
Lukas Lihotzki
46b2f8898e
fix: use TryGet.optional
2021-07-26 15:33:36 +02:00
Christian Pauly
e86fd7cc07
refactor: Restructure states box and use dedicated members hive box
...
More description about this here: https://gitlab.com/famedly/company/frontend/frontend-issue-inbox/-/issues/40
2021-07-10 08:38:38 +00:00
Christian Pauly
aeb808b5dc
fix: Dont migrate from version null
...
If the currentVersion of the database is null then the database has never been used yet.
Therefore we store the current version and do not call the migrate method.
2021-07-10 08:38:38 +00:00
Sorunome
4735d2d0a8
fix: Sending of the to_device key
...
With the switch to hive a regression of sending the to_device key was
introduced: When popping elements .deleteAt(), so deleting at the index,
was used, instead of .delete(), so deleting of the key. As the new events
pushed onto the queue used hives auto increment key, a .delete() is
appropriate here.
2021-07-09 19:43:48 +02: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
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
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
c387b33e9f
refactor: Make support for file storing optional in database API
2021-06-01 15:27: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
Lukas Lihotzki
ac9df588d1
chore: recreate database.g.dart
2021-04-12 14:49:03 +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
Sorunome
c76dc0daa2
chore: Reduce needed database accessess
2021-03-09 18:28:58 +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
Christian Pauly
c9d3c327f6
refactor: Deprecate eventType in EventUpdate
2021-02-26 13:06:02 +01:00
Christian Pauly
72a7bc1637
feat: Implement upload sync filters
2021-02-18 14:03:58 +01:00
Sorunome
d373a06aa2
fix: Add to_device queue to prevent olm session corruptions
2021-02-08 14:57:19 +01:00
Sorunome
a35266f1e4
feat: Replay last sent olm message on olm session recovery from other device
2021-01-20 12:50:52 +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
add19c73a0
fix: Load multiple olm sessions from the database at once for increased performance
2020-12-30 12:52:54 +01:00
Sorunome
6723c01a31
feat: Lazy-send room keys, chunked and sorted by importance
2020-12-29 14:46:36 +01:00
Marcus Hoffmann
54fc29f203
clear cache fix
2020-12-22 17:34:50 +01:00
Sorunome
df1c249011
feat: Auto-Share megolm sessions with other users we know for a fact are allowed to see said message
2020-12-21 14:41:44 +01:00
Christian Pauly
3d6dbc9dc3
chore: Implement logoutput
2020-12-21 09:35:36 +01:00
Christian Pauly
57286d4c28
feat: Use logger package
2020-12-19 12:04:25 +00:00
Sorunome
49f0679fbf
feat: Add bootstrapping
2020-12-10 08:13:24 +00:00
Christian Pauly
bec1761172
refactor: content parsing
2020-11-30 15:34:46 +01:00
Sorunome
c509144987
fix: Fetching history sometimes re-sorting events in the timeline
2020-11-08 14:54:19 +01:00
Christian Pauly
66e590073e
refactor: Event Update Type
2020-10-22 13:01:35 +02:00
Sorunome
2e941b85e9
fix: Delete files older than 30 days
2020-10-08 13:02:20 +00:00
Christian Pauly
0761d33b6f
refactor: Database first to single
2020-10-08 12:48:56 +00:00
Sorunome
ae79af6ea8
fix: store timestamps in milliseconds to fix decrypt error
2020-10-04 12:12:03 +02:00
Christian Pauly
bc8fef4a94
fix: Remove pubspec.lock from repo
2020-09-16 14:41:09 +02:00
Sorunome
b5ac500136
fix: Handle failed to send messages in low network significantly better
2020-09-10 13:19:58 +02:00
Christian Pauly
5d45c224a3
fix: Mark pending events as failed on startup
2020-09-10 10:01:44 +02:00
Sorunome
99d536b14f
feature: Upload to online key backup
2020-09-09 09:53:26 +02:00
Christian Pauly
9142dcbeec
fix: Database error handling
2020-08-26 09:40:30 +02:00
Sorunome
631b28eab2
fix: Migrations don't fail anymore if they were partly completed
2020-08-18 14:00:42 +02:00
Sorunome
ea59c4bd94
refactor(keybackup): Update database for stored megolm keys to prepare for proper online key backup
2020-08-17 09:10:51 +02:00
Sorunome
20d72eb8d7
fix: Event statuses progress and are saved correctly
2020-08-17 08:54:16 +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
6170c79fe1
Improve logging
2020-08-06 09:35:02 +00:00
Christian Pauly
bbd5749aec
Fix storing of event status
2020-08-05 05:57:10 +00:00
Christian Pauly
d4a7345b8a
Enable transactions again to fix web
2020-08-03 13:28:30 +00:00
Sorunome
69431a1aff
some key verification fixes and temporarily disable transactions
2020-07-30 09:57:45 +02:00
Sorunome
c68487ac21
fix issue with sending messages
2020-07-23 08:09:00 +00:00
Sorunome
0ece2717e0
Merge branch 'master' into soru/fix-members-requests
2020-07-20 11:53:55 +02:00
Sorunome
175cb0fbd2
add Databse.connect to be able to run in isaltes
2020-07-17 13:20:23 +02:00
Sorunome
4394196ba1
try to load members from database first and cache them in-memory
2020-07-14 11:30:13 +02:00
Sorunome
79ea85bf4d
indexes are already created when creating a talbe
2020-07-14 10:43:21 +02: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
Sorunome
b7b369923f
only lazy-load m.room.member, not store presence
2020-06-30 13:41:52 +02:00
Sorunome
a1f8120c59
Greatly imporve initial loading performance
2020-06-30 12:17:56 +02:00
Christian Pauly
4790925929
Merge branch 'soru/no-contains-key' into 'master'
...
Better validate event contents
See merge request famedly/famedlysdk!353
2020-06-29 12:02:18 +00:00
Sorunome
fd406987c1
Better validate event contents
2020-06-29 12:02:18 +00:00
Sorunome
163cbdb923
Hotfix: account_data stored incorrectly in the database
2020-06-26 18:46:54 +02:00
Sorunome
62f63ebf1f
Merge branch 'soru/olm-session-recovery' into 'master'
...
Adds olm session recovery
See merge request famedly/famedlysdk!355
2020-06-25 08:01:37 +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
52e57f8dc2
Minor refactoring
2020-06-25 07:16:59 +00:00
Sorunome
68fac1e112
pick the correct session when encrypting to_device events
2020-06-24 09:27:32 +02:00
Sorunome
f79a85ca71
Merge branch 'master' into soru/cross-signing
2020-06-24 09:26:22 +02:00
Sorunome
1a9f6e38dc
add database.getRoom
2020-06-23 13:35:22 +02:00
Sorunome
3d40a8d81b
remove transaction hack
2020-06-22 17:27:06 +02:00
Christian Pauly
f1579a5f0f
Database transaction workaround
2020-06-19 15:28:03 +02:00
Sorunome
12bdddee03
Better format switching to WAL mode
2020-06-16 14:26:37 +02:00
Sorunome
b1ec508666
Merge branch 'master' into soru/cross-signing
2020-06-16 12:58:30 +02:00
Sorunome
77378e3ebc
switch database to wal mode
2020-06-16 12:51:29 +02:00
Sorunome
ef0a567401
finish ssss tests
2020-06-13 19:12:32 +02:00
Sorunome
5334266529
Merge branch 'master' into soru/cross-signing
2020-06-10 16:25:08 +02:00
Sorunome
f485ca29d8
Fix state attack
2020-06-10 14:17:57 +00:00
Sorunome
1fdd0a7db8
aslo clear ssss cache when clearing a user id
2020-06-06 15:48:57 +02:00
Sorunome
115cd9e5b3
better cache invalidation of ssss cache
2020-06-05 22:22:07 +02:00
Sorunome
d29fb9abfe
Merge branch 'soru/modularize-e2ee' into soru/cross-signing
2020-06-05 18:59:58 +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
Sorunome
280cd4fc16
first SSSS stuff
2020-05-23 17:04:27 +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
af961b99dc
get device verification status based on cross signing
2020-05-21 15:20:33 +02:00
Sorunome
7a41f4726f
properly persist inbound group session indexes
2020-05-20 10:36:05 +02:00
Sorunome
a0fe8f4bad
Add rotation of outbound group sessions
2020-05-18 18:33:16 +02:00
Sorunome
06b601c41b
lazy-load group session keys
2020-05-17 07:54:34 +00:00
Sorunome
f71826739c
Switch to moor
2020-05-15 18:40:17 +00:00