Commit Graph

262 Commits

Author SHA1 Message Date
Christian Pauly 4e657f8e09 fix: Ignore no permission errors on requesting users
In theory even in invite or left rooms it
can be possible to request a room
state regarding the spec. In most
cases it will throw an error though.
2022-04-14 17:32:52 +02:00
Krille Fear 2f4d455eee fix: Retry sending a file event 2022-04-08 08:41:55 +02:00
Henri Carnot c6393c67d6 Merge branch 'henri/blurhash-fallback' into 'main'
feat: blurhash fallback to thumbnail one

See merge request famedly/company/frontend/famedlysdk!1002
2022-04-07 11:58:48 +00:00
h.carnot 97ca608f60 feat: check thumbnail size 2022-04-06 17:43:31 +02:00
h.carnot f1c007c655 feat: fallback to thumbnail preview 2022-04-06 11:09:05 +02:00
Christian Pauly cdd6111ce1 fix: Missing type check in power level calculation 2022-04-03 08:22:53 +02:00
Krille Fear 6f977b7c9d fix: Store sending files in database and fix retrying to send them 2022-04-01 14:26:57 +02:00
Christian Pauly 117baecfb1 fix: Post load all users on room opening
When opening a room we need to
fetch all users from the database.
Otherwise we would need to
update the timeline per user after
creation which should be much slower.
2022-03-31 13:07:40 +02:00
Christian Pauly 6a57f99c00 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 11:15:04 +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
Christian Pauly a915cdacc8 feat: Display dummy event in timeline for sending files
For thumbnail generation, encrypting
and uploading it is not necessary
to block the UI. The given file
event should already be displayed
in the timeline. This placed it in
the UI and adds a additional
fileSendingStatus property so the
app can fetch the current status.
2022-03-30 10:27:42 +02:00
Krille Fear 23e0d29a0d Merge branch 'krille/try-again-sending' into 'main'
feat: Try again uploading file events for one minute

See merge request famedly/company/frontend/famedlysdk!986
2022-03-30 06:38:01 +00:00
Nicolas Werner e2d2a69e45 Merge branch 'voip/move-voip-methods-from-room' into 'main'
chore: Move the call methods in room to the voip class.

See merge request famedly/company/frontend/famedlysdk!980
2022-03-25 23:51:55 +00:00
Duan Weiwei cac4dc967d chore: Move the call methods in room to the voip class. 2022-03-25 23:51:55 +00:00
Christian Pauly f86b242dcf feat: Try again uploading file events for one minute
This also refactors the code for
sending events with the same
Duration of one minute.
2022-03-25 12:54:42 +01:00
Christian Pauly 6b36d6bd79 feat: Get event in a room faster by searching in database 2022-03-24 14:10:41 +01:00
TheOneWithTheBraid c362ead49a feat: implement mofifying widgets
- add predefined MatrixWidget factories
- allow to create widgets
- allow to delete widgets

Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
2022-03-24 10:40:10 +01:00
Christian Pauly f1d422b89a fix: Dont encrypt reactions
This fixes that server
sends notifications for reactions.
2022-03-15 08:42:53 +01:00
Christian Pauly b30b340b43 fix: hasNewMessage true when last event is sent 2022-02-16 08:09:57 +01:00
Christian Pauly 01dfdb29fd fix: Has new messages compares ts
This compares the origin server timestamp which might not map
to the real sort order of the timeline. But it is the best
solution for now.
2022-02-15 10:26:17 +01:00
Lanna Michalke ade7e7e910 fix: handle dynamic content for pinned events
Signed-off-by: Lanna Michalke <l.michalke@famedly.com>
2022-02-14 18:18:34 +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 63e69eaa27 feat: Add hasNewMessages flag to room
This makes it possible to check
if muted rooms have unread
messages.
2022-02-14 10:48:57 +01:00
Nicolas Werner 4a52540006 fix: exception on removed widgets
And widgets without a name.

fixes #267
2022-02-13 23:11:53 +01:00
Krille Fear 84e87279e8 fix: Remove onHistoryReceived which was broken anyway 2022-02-07 15:15:44 +01:00
Christian Pauly 01d13e7e2c refactor: Implement on history received in timeline
In order to make delta updates
for GUIs displaying the
timeline events easier, the
onHistoryReceived callback
has been introduced.
2022-02-03 09:38:39 +01:00
TheOneWithTheBraid fa6bd12294 feat: implement to get a room's widgets
Please note that this does not implement *modifying* widgets,
as this requires a full implementation of the Matrix Integration Manager
API first. This is to be done later.

Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
2022-02-02 08:38:56 +01:00
Christian Pauly 48572f8f10 fix: Trigger onChange for index on aggregation event update 2022-02-01 11:45:29 +01:00
TheOneWithTheBraid ed6f9c06b7 feat: expose Timeline.onChange to Room.getTimeline
Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
2022-01-26 12:52:30 +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
Marcel 1b11efc9eb fix: Use where and map instead of a loop and a removeWhere 2022-01-17 22:06:29 +00:00
Krille Fear bcca5e11f2 feat: Let sendDefaultMessage return false on encryption failure 2022-01-07 17:12:20 +00:00
Krille Fear 6d8fabd1e0 Merge branch 'krille/fix-request-user' into 'main'
fix: Requested users are not stored

See merge request famedly/company/frontend/famedlysdk!930
2022-01-04 06:28:00 +00:00
Christian Pauly 62a04b52d4 fix: Requested users are not stored
Fake Matrix Events for storing
need more paramters to
actually get stored. This fixes
it by creating a fake event ID
which should be unique.
2021-12-26 09:14:52 +01:00
Krille Fear 3bce8b4489 refactor: Remove unnecessary type checks and imports 2021-12-23 11:46:45 +01:00
Nicolas Werner d687973b01 fix: fallback in body for replies to replies 2021-12-15 19:21:41 +00:00
Sorunome b009ada0ac
fix: Allow consecutive edits for state events in-memory
The lastEvent was incorrect when trying to process an edit of an edit.
This fixes that by allowing consecutive edits for the last event.
2021-12-06 11:11:21 +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 b7565af56f fix: use originServerTs to check if state event is old
Due to server bugs or whatever it sometimes
happens that old state events appear
in the setState method in the room class.
Previously we checked if we already know
this event ID, but for this we needed to
check the timeline which is very fluid.
Also this is a database operation in a
non-async method which works in Hive but
not in Sembast.
Using originServerTs is not 100% safe as
well but should be more stable because
the chance that servers have veeery wrong
time (which is necessary here) is much
lower than the risk that the timeline
is not long enough to know the
old event.
2021-11-15 10:57:55 +01:00
Krille Fear f052957c0a fix: Change eventstatus of edits in prevEvent
Unfortunately the last fix
was not working.
This fixes it for real now and also
adds a test case to make sure it
never breaks again.
2021-11-11 09:48:50 +01:00
Nicolas Werner be617ee974 Merge branch 'krille/update_api' into 'main'
refactor: Update matrix_api_lite and use SyncUpdate constructors

See merge request famedly/company/frontend/famedlysdk!887
2021-11-10 11:40:49 +00:00
Krille Fear d16c25b26d fix: Edits as lastEvent do not update
This fixes a bug where edit
events as lastEvents do not
update from SENDING status.
Because previously it only
checks if the event ID
matches.
2021-11-10 10:43:05 +01:00
Krille Fear 58b36a67a3 refactor: Update matrix_api_lite and use SyncUpdate constructors 2021-11-10 10:04:03 +01:00
Krille Fear 8116436da8 Merge branch 'krille/improve-start-up-time' into 'main'
feat: Make waiting on init db optional

Closes #235

See merge request famedly/company/frontend/famedlysdk!881
2021-11-09 14:35:13 +00: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 e313426dd9 refactor: Move setreadmarker functionality to timeline
Apps had a hard time to just set
the marker for the last event.
The lastEvent in the Room may
not be the actual last event
because we ignore several
event types there. Therefore
it makes sense to refactor
the setUnread method.
Now the timeline class has an
easy method to set the read
marker to the last synced
event, which can only be
known by the timeline if we
want to avoid another DB access.
2021-11-09 14:56:59 +01:00
Jindra a0bab1b587 feat: choose memberships returned by requestParticipants() 2021-11-02 09:27:00 +01:00
Nicolas Werner 6e20c53b01
refactor: remove redundant null checks 2021-10-28 14:32:09 +02:00
Nicolas Werner 6abd9e7e22
refactor: nullsafe event test 2021-10-28 03:44:01 +02:00
Nicolas Werner ebd5bc3d24
refactor: make room nullsafe 2021-10-28 00:54:25 +02:00