Commit Graph

366 Commits

Author SHA1 Message Date
Reza 8f37466295 fix: minor stuff 2022-11-24 09:33:36 +01:00
Reza 10cf979877 fix: minor stuff 2022-11-23 19:28:08 +01:00
Reza 44f862b966 feat: start verification with the verified device 2022-11-23 13:43:57 +01:00
TheOneWithTheBraid 6ef8a56041 feat: migrate e2ee test to DinD
- migrate e2ee tests to DinD
- test e2ee against Synapse, Conduit and Dendrite
- fix error handling in push rules (thanks to Dendrite tests)

Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
2022-11-23 09:01:53 +01:00
Reza ffb37e834f feat: check if the key is verified by any master key 2022-11-22 17:22:04 +01:00
Christian Pauly aaaf63a0b8 feat: Check if a key is verified by any master key
To check if a device is cross
signed by any master key can
be useful to know which
device can give us the
bootstrap keys on login.
2022-11-21 10:12:12 +01:00
TheOneWithTheBraid 476963069a feat: support MSC 3935: cute events
- add cute event skeletron (`im.fluffychat.cute_events`)
- add cute events to default command batch
- this way, all SDK users can profit from cute events
- supported events: `hug`, `googly_eyes`, `cuddle`

Fixes:
https://rail.chat/@AgathaSorceress@eldritch.cafe/109336005433123570

Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
2022-11-21 09:17:07 +01:00
Christian Pauly 296b193c1d chore: Lower logs level of native implementation noSuchMethod
Otherwise it would spam in the
production logs all the time
2022-10-28 12:45:27 +02:00
Christian Pauly 7b1a519de0 fix: Do not assume that push rules are never malformed in account data 2022-10-21 10:48:40 +02:00
Nicolas Werner 99c77b9276 Merge branch 'nico/decryption-queue' into 'main'
feat: Implement a queue for events pending decryption

Closes famedly-web#535

See merge request famedly/company/frontend/famedlysdk!1143
2022-10-18 14:02:48 +00:00
Nicolas Werner f55bb4776a feat: Support evaluating pushrules
fixes #339
2022-10-17 04:29:20 +02:00
Nicolas Werner c6a8f5a162 feat: Implement a queue for events pending decryption
fixes https://gitlab.com/famedly/company/frontend/famedly-web/-/issues/535
2022-10-12 11:07:50 +02:00
Nicolas Werner 029a4ae77a fix: files get needlessly lowercased
relates to https://gitlab.com/famedly/app/-/issues/1755
2022-09-20 10:59:22 +02:00
Nicolas Werner ab73047e51 fix: timeout when sending large files
fixes https://gitlab.com/famedly/company/frontend/famedly-web/-/issues/540
2022-09-06 21:18:53 +02:00
Lanna Michalke 94a922fc31 Merge branch 'braid/natrive-implementations-follow-up' into 'main'
fix: follow up for native implementations web

Closes famedly-web#551

See merge request famedly/company/frontend/famedlysdk!1105
2022-08-17 10:29:57 +00:00
Lanna Michalke ca68c28d41 chore: support MIME in file factory
- defaultly generate MatrixFile based on the present MIME type

Related: https://gitlab.com/famedly/company/frontend/famedly-web/-/merge_requests/598

Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-08-17 11:57:50 +02:00
Lanna Michalke d43164f96d fix: follow up for native implementations web
- remove room key deriviation from web worker
- fix fallback argument

Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-08-17 10:08:58 +02:00
Nicolas Werner 651abc7c14 Merge branch 'krille/add-mark-as-dm-commands' into 'main'
feat: Add markasdm and markasgroup commands

See merge request famedly/company/frontend/famedlysdk!1092
2022-08-15 14:19:17 +00:00
Nicolas Werner a47833ab80 Merge branch 'nico/lints' into 'main'
feat: switch from pedantic to lints

See merge request famedly/company/frontend/famedlysdk!1094
2022-08-15 14:15:51 +00:00
Nicolas Werner 6555f36d6d feat: switch from pedantic to lints 2022-08-15 14:15:51 +00:00
Christian Pauly 527bcc63ad refactor: Add reference to itself in bootstrap onUpdate callback 2022-08-12 15:23:32 +02:00
Lanna Michalke a983db4946 chore: expose option to retry computations
Fixes: https://gitlab.com/famedly/company/frontend/famedly-web/-/issues/536

Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-08-10 07:59:29 +02:00
Christian Pauly 694187d5f1 feat: Add markasdm and markasgroup commands
This makes it possible to mark a
room as dm or group. As most of
the apps using the SDK do not have
a GUI to do this, this makes it now
finally possible to repair broken DM
rooms.
2022-08-08 08:47:07 +02:00
Lanna Michalke 05ff61ac86 chore: introduce native implementations
- adds Client.nativeImplementations
 - deprecates Client.compute

Allows to properly implement accelerated native operations in web

Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-07-28 13:30:22 +02:00
Christian Pauly 7885281c72 refactor: Use import sorter and ci templates 2022-07-21 15:44:04 +02:00
Christian Pauly 28231936b1 feat: Calc encryption health state and allow key sharing with unknown devices
In order to allow key sharing with
unknown devices (master key has been
verified but this device is not
signed by this master key) the
user should at least be informed.
This makes it possible to set
in the client constructor whether
the app should share keys with
unverified devices or unknown
devices.
2022-07-09 09:39:31 +02:00
Christian Pauly 9628095ac9 feat: Implement CachedStreamController
This makes it possible to access the last
value of a stream at any time.
2022-06-30 09:22:53 +02:00
Nicolas Werner c292a8602b fix: Support for OpenSSL 3.0 2022-06-28 12:31:47 +02:00
Henri Carnot fb18843b08 refactor: make sender getter async 2022-06-02 08:13:21 +00:00
Henri Carnot 69dacc8ccd feat: allow updating image size 2022-05-31 20:32:35 +00:00
Krille Fear 3f3d4d38d6 refactor: Migrate to Matrix Api Lite 1.0.0 2022-05-17 22:50:04 +00:00
Henri Carnot bfdd4c810e Henri/fragmented timeline v2 2022-05-16 10:54:42 +00:00
Krille Fear 9a87850092 Revert "feat: non cached fragmented timeline"
This reverts commit 09b324674e
2022-05-12 09:46:29 +02:00
Henri Carnot 09b324674e feat: non cached fragmented timeline 2022-05-03 14:08:33 +00:00
td 60fb103563 Merge branch 'krille/remove-deprecations' into 'main'
refactor: Remove old deprecations

See merge request famedly/company/frontend/famedlysdk!1017
2022-04-27 05:35:32 +00:00
Christian Pauly bce45cbf2b refactor: Remove old deprecations
They have been lived long
enough and the next version
will have breaking changes
anyway.
2022-04-22 12:44:45 +02:00
h.carnot eaa2f73bcc feat: make image size editable 2022-04-21 15:45:38 +02:00
Krille Fear c5a6cc9a52 Merge branch 'krille/get-event-from-push' into 'main'
feat: Get event from push notification

See merge request famedly/company/frontend/famedlysdk!1008
2022-04-14 15:08:46 +00:00
Christian Pauly 5973e629fe feat: Get event from push notification 2022-04-14 17:01:05 +02:00
Christian Pauly 059a240214 feat: Add more localization strings and add default matrix localizations 2022-04-14 07:54:15 +02:00
Krille Fear 2f4d455eee fix: Retry sending a file event 2022-04-08 08:41:55 +02:00
Krille Fear e97fe621d6 chore: Allow custom image resizer to be an async method 2022-04-04 14:35:23 +02:00
Christian Pauly ea3910001b fix: Better fallback message for member events without any change 2022-03-31 12:20:23 +02:00
Christian Pauly 445252b3a5 feat: Pass through a custom image
resize function to the client

This allows the use of the
native imaging package in a more
easy way.
2022-03-30 10:35:17 +02:00
Techno-Disaster 885da787b4
fix: send oldusername in displayname changed event 2022-03-17 18:51:26 +05:30
Krille Fear 9fa5667234 refactor: Make MatrixFile final and move all image calculation into isolate
This makes all fields in a MatrixFile final and
the object therefore stateless. It also moves
all calculations into the isolate. After some
benchmarks it seems that this does not
really speed up the thumbnail creation
but it does no longer block the UI for
some seconds.
2022-03-15 08:27:40 +01:00
Krille Fear a7f8838522 fix: UIA request stucks forever on unexpected matrixExceptions 2022-02-17 20:54:03 +01: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 12f846e101 fix: Resize image with compute by using const class arguments 2022-02-04 08:04:18 +01:00
Lanna Michalke 58f6cde0bf BREAKING CHANGE: high-level hadling of image sizes
- By using [package:image](https://pub.dev/packages/image), the
`MatrixImageFile` was given automatically generated width and heigth.
- Moreover, `MatrixImageFile` was given a factory to create the image
  file from a given maximal dimension.
- When sending images without explicitly providing a thumbnail, the
  thumbnail is automatically generated based on the provided image.
- The blur hash in generated automatically based on the provided image.

Fixes:
https://gitlab.com/famedly/company/frontend/famedly-web/-/issues/162, https://gitlab.com/famedly/fluffychat/-/issues/756

Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-01-19 13:10:17 +01:00
Lanna Michalke cab03aa73b fix: Allow unpadded base64 decoding 2022-01-11 09:02:34 +00:00
Krille Fear e9e9dcb4aa Merge branch 'krille/newlinter' into 'main'
refactor: Remove unnecessary type checks and imports

See merge request famedly/company/frontend/famedlysdk!929
2022-01-03 11:45:06 +00:00
Krille Fear 3bce8b4489 refactor: Remove unnecessary type checks and imports 2021-12-23 11:46:45 +01:00
Krille Fear 326f1f3223 fix: Localize reactions
In notifications in FluffyChat we
have "Unknown event m.reaction"
for reactions. But it should just be
enough to display the body so it
should look like:
"username: :thumbs_up_emoji:"
2021-12-23 11:43:00 +01:00
Krille Fear 921c694888 feat: Add clear cache command 2021-11-23 09:48:08 +01:00
Krille Fear a61e1ae4a3 feat: Add commands to create chats 2021-11-21 13:40:41 +01:00
Krille Fear 66bf8e6ace fix: HtmlToText crashes with an empty code block 2021-11-16 08:18:07 +01:00
Nicolas Werner d2e7de4702
fix: crash on invalid displaynames 2021-11-09 21:27:55 +01:00
Krille Fear 9abe1ed81d fix: Dont enable e2ee in test verification DM room 2021-11-09 15:42:43 +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 9be87918f1 refactor: Make room in Event class not nullable 2021-11-04 14:21:04 +01:00
Sorunome 5c87b560b9
fix: obay explicitly set ports in mxc URLs 2021-11-03 08:54:04 +01: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
Nicolas Werner 17fd1f22b3 refactor: make event nullsafe 2021-10-25 10:10:25 +00:00
Krille Fear faba36d476 fix: Missing null check in a nested json map 2021-10-18 15:45:29 +02:00
Nicolas Werner 60956bde00 chore: port the remaining encryption files to nullsafety 2021-10-13 13:58:21 +00:00
Krille Fear 3ae42d1a88 fix: Type error when using CryptoKey in dart web
In Dart Web when using CryptoKey we
get a type error. When using the html version of it
it seems to work fine.
2021-10-13 12:30:04 +00:00
Krille Fear 3603dae312 feat: Calc benchmarks for hive operations on init 2021-10-07 12:18:13 +00:00
Lukas Lihotzki a7818bbd0f refactor: null safety for all utils 2021-10-05 15:41:25 +02:00
Nicolas Werner 7dd176c278 fix: apply review feedback 2021-09-30 12:58:37 +00:00
Nicolas Werner 1c838e3be8 fix: Cleanup nullsafe encryption a bit 2021-09-30 12:58:37 +00:00
Lukas Lihotzki da80658c09 refactor: simplify device_keys_list.dart 2021-09-30 12:58:37 +00:00
Nicolas Werner a196b53219 refactor: nullsafe encryption 2021-09-30 12:58:37 +00:00
Lukas Lihotzki 1d0202e14e refactor: null safe matrix_id_string_extension 2021-09-27 12:59:51 +00:00
Lukas Lihotzki 3b1c6e3d2b refactor: arbitrary components in _parseIdentifierIntoUri 2021-09-27 12:59:51 +00:00
Lukas Lihotzki fb0ea2efc3 refactor: parseIdentifierIntoParts 2021-09-27 12:59:51 +00:00
Lukas Lihotzki 7fce5b6040 refactor: inline parseQueryString in parseIdentifierIntoParts 2021-09-27 12:59:51 +00:00
Lukas Lihotzki 8ea01fcee0 refactor: simplify parseQueryString in parseIdentifierIntoParts 2021-09-27 12:59:51 +00:00
Jayesh Nirve 77ca7523d0 refactor: remove unused clientId 2021-09-24 16:05:05 +02:00
Lukas Lihotzki 42434761e8 chore: dart analyze fix 2021-09-23 14:57:30 +02:00
Lukas Lihotzki 5da26a6923 refactor: null safe commands_extension 2021-09-23 00:15:05 +00:00
Lukas Lihotzki 01c3b4d0bc refactor: null safe MatrixFile 2021-09-22 23:40:21 +00:00
Lukas Lihotzki 7a3553839c fix: remove unused parameter in VariableTimeoutHttpClient 2021-09-21 07:12:07 +00:00
Lukas Lihotzki f491cfacc2 refactor: null safe http_timeout 2021-09-21 07:12:07 +00:00
Sorunome 6f0c7c5f64 feat: Add /discardsession command 2021-09-17 05:52:53 +00: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 5b13e0442e refactor: Make Uri extension null safe 2021-09-08 12:31:55 +00:00
Christian Pauly 92755c07d3 refactor: Don't create dummy User object just to start a new chat 2021-09-08 12:31:55 +00:00
Christian Pauly 646d7e2640 fix: revert make bytes in EncryptedFile nullable 2021-09-06 09:35:53 +02:00
Christian Pauly 2cd32a8547 fix: Make bytes in encrypted file nullable
This was a mistake to make them non nullable. There are fields in the app where
we create this object without bytes.
2021-09-06 08:46:23 +02: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 62694248b9 refactor: Make UIA Request null safe 2021-08-30 09:26:34 +02:00
Christian Pauly efca583cf5 refactor: SyncUpdateExtension null safe 2021-08-30 09:20:17 +02:00
Christian Pauly 8ae77215b5 refactor: SpaceChild and SpaceParent null safe 2021-08-30 09:20:17 +02:00
Christian Pauly dd48a379ec refactor: runInRoot null safe 2021-08-30 09:20:17 +02:00
Christian Pauly 8621f82333 refactor: Null safe receipt 2021-08-30 09:20:17 +02:00
Christian Pauly 607658dcda refactor: Null safe QueuedToDeviceEvent and fix CamelCase filename 2021-08-30 09:20:17 +02:00
Christian Pauly 4b9a2945f4 refactor: Null safe multilock 2021-08-30 09:20:17 +02:00