This adds a check before the storeRoomUpdate() call if the room is actually known. This has the effect that the call of forgetRoom() is skipped. The reason for this is an edge case in the database implementation when calling getAllKeys(). This somehow can corrupt the keys-cache and lead to some problems. I wasn't able to fix this problem yet so this refactoring is more a good-enough workaround for now to not trigger it on an initial sync. I plan to fix it with a different approach which completely removes the keys-cache in the future. However this change leads to some problems in the tests as they already rely on this edge case. |
||
|---|---|---|
| .github | ||
| .gitlab | ||
| doc | ||
| example | ||
| lib | ||
| scripts | ||
| test | ||
| test_driver | ||
| web_test | ||
| .codecov.yaml | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .metadata | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
| analysis_options.yaml | ||
| dart_test.yaml | ||
| pubspec.yaml | ||
README.md
Matrix SDK
Matrix (matrix.org) SDK written in dart.
Native libraries
For E2EE, libolm must be provided.
Additionally, OpenSSL (libcrypto) must be provided on native platforms for E2EE.
For flutter apps you can easily import it with the flutter_olm and the flutter_openssl_crypto packages.
flutter pub add matrix
flutter pub add flutter_olm
flutter pub add flutter_openssl_crypto
Get started
See the API documentation for details:
Tests
thread_count=$(getconf _NPROCESSORS_ONLN) // or your favourite number :3
dart test --concurrency=$thread_count test
- Adding the
-x olmflag will skip tests which require olm - Using
-t olmwill run only olm specific tests, but these will probably break as they need prior setup (which is not marked as olm and hence won't be run)