Commit Graph

440 Commits

Author SHA1 Message Date
Mauro
979f526f19 Last Owner should edit admins, and not leave when is last (#4372) 2025-08-07 08:40:14 +00:00
Mauro Romito
48bee8c4c3 fix filtering of non spaces
Revert "fix filtering of non spaces"

This reverts commit a45e4726e1712e4c4d2b59157da06c3c95df1c5e.

x
2025-08-05 16:43:43 +02:00
Robin
37506cc4c1 Delegate the sending of call notifications to Element Call (#4370)
* Stop sending call notifications manually

The Element Call widget can now assume responsibility for sending them when you start a call.

* Bump Element Call embedded package to v0.14.0

* Delegate the sending of call notifications to Element Call

* Update the SDK.

* Use 'is' prefix for boolean

---------

Co-authored-by: Doug <douglase@element.io>
2025-08-01 18:47:48 +02:00
Mauro
5a87fb4f92 Restore permissions to creator and display them as owners in the list (#4369)
* restore permissions to creator and display them as owners in the list

* improved the code to use actually 5 roles in the app to distinguish a real creator from an owner
2025-07-31 16:52:55 +02:00
Mauro
3b8ad24d10 SDK Update + PowerLevels API update (#4366)
* update the sdk, and updated the power levels APIs

Revert "update the sdk, and updated the power levels APIs"

This reverts commit d3b291003d2b6fd6346ef7e445af4970fda62348.

x

* pr suggestions
2025-07-30 14:42:45 +00:00
Doug
44de05e185 Add support for Space avatars. (#4362) 2025-07-29 12:20:13 +01:00
Stefan Ceriu
3726bcd012 Fix various new SDK breaking changes. 2025-07-24 14:55:34 +03:00
Doug
10bf553afd Use the timeline when marking a room as read (#4319)
* Forward JoinedRoomProxy.markAsRead to the timeline

The room version was building a fresh timeline even though we already had one.

* Run swiftformat 0.57.0.
2025-07-14 12:20:41 +01:00
Mauro
5837ebdca3 added a feature flag for share pos + updated the SDK (#4312) 2025-07-10 15:03:03 +02:00
Stefan Ceriu
e3f99d7aaf Make the RoomInfo isPrivate field optional and handle it accordingly. 2025-06-25 17:23:22 +03:00
Stefan Ceriu
7e30902ee1 Bump the SDK to v25.06.25; adopt the new optional RoomInfo joinRule and isPublic. 2025-06-25 17:23:22 +03:00
Stefan Ceriu
ee81755092 Switch to using the power levels for retrieving a user's role. 2025-06-25 17:23:22 +03:00
Stefan Ceriu
4b68d1caf3 Make the room power levels optional as they can be missing depending on what state events are requested 2025-06-25 17:23:22 +03:00
Stefan Ceriu
e5a49c568f Adopt room info power levels (#4245)
* Use the newly RoomInfo published PowerLevels; update permissions at the same time as the room info and avoid unnecessary async calls.

* Introduce a RoomInfoProxyProtocol and associated mock and move away from mocked SDK RoomInfos

* Bump the SDK to v25.06.23

* Expose new non-throwing methods for checking one's own user permissions

* Fix the unit and preview tests (except the TimelineMediaPreviewDetails for which simplified snapshots were generated)

* Converge on one single implementation for computing a room's avatar.

* Fix more unit tests

* Fix the TimelineMediaPreviewDetailsView snapshot tests

This reverts commit 9b6c819e611ad2fa3de2c34a4a7aa556fc9faadd.

---------

Co-authored-by: Doug <douglase@element.io>
2025-06-24 17:48:00 +01:00
Stefan Ceriu
60f4228162 Adopt the lastest SDK APIs and refactor how we deal with user permissions.
This patch introduces a new RoomPowerLevelsProxy and its associated mock and adopts newer Rust APIs to make working with user power levels and permissions easier.
2025-06-20 18:10:45 +03:00
Stefan Ceriu
1204edc772 Bump the SDK to v25.06.13 and add thread support to the ComposerDraftService 2025-06-13 16:56:13 +03:00
Stefan Ceriu
065efc6e98 Stop filtering out events on filtered (media) timelines when threads are enabled. 2025-06-10 21:20:09 +03:00
Stefan Ceriu
a03be6ec6a Pass the thread feature flag into room timelines 2025-06-10 15:09:20 +03:00
Stefan Ceriu
2993f9b6a2 Fix breaking changes following SDK update. 2025-06-10 15:09:20 +03:00
Stefan Ceriu
84478c8251 Setup composer actions within threaded timelines. 2025-06-10 08:57:08 +03:00
Mauro Romito
975d3c995a pr suggestions 2025-06-06 10:49:29 +02:00
Mauro Romito
d05108796f tombstoned and upgraded rooms implementation
added tests

tombstoned room avatar
2025-06-06 10:49:29 +02:00
Stefan Ceriu
fadc3a1a1b Adopt the new deduplicate room versions room list filter. 2025-05-30 16:40:15 +03:00
Stefan Ceriu
47cdb15b9d Bump the SDK to v25.05.26-2 and update the breaking changes following the RoomListItem removal 2025-05-26 18:11:24 +03:00
Stefan Ceriu
ebbe0eb646 Remove the reliance on a room list item and the preview api from the BannedRoomProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu
f6c2405427 Remove the RoomListItem from the JoinedRoomProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu
c7e86a3c0f Apply the logic from the previous commit and the JoinRoomProxy to the KnockedRoomProxy 2025-05-26 13:22:57 +03:00
Stefan Ceriu
fcbc49438c Pass the full room into the invited room proxy and stop automatically retrieving the preview
- this will help speed up leaving invites but also stop fetching previews twice in the join room screen
2025-05-26 13:22:57 +03:00
Stefan Ceriu
b9ad6ed557 Rename the TimelineProvider to TimelineItemProvider 2025-05-23 16:08:18 +03:00
Stefan Ceriu
d4e505854a Move the pinned timeline in line with the other timeline creation methods and have it report errors just like the others 2025-05-22 18:14:55 +03:00
Stefan Ceriu
2c4a8b34a7 Bump the SDK to 25.05.21 and adopt the new way of dealing with timelines and delegates.
The room list items no longer hold any timeline instances and they can now be created through the normal `room.timelineWithConfiguration` mechanism.
This also means that we can move the UTD hook away from the sync service and into the client itself but setting it is now fallible as it can only be set once.
2025-05-22 18:14:55 +03:00
Stefan Ceriu
57007f9eea Add mechanism for opening up a threaded timeline 2025-05-20 12:18:55 +03:00
Mauro
0154e10f98 Always open manage member sheet (#4110)
* always open manage member sheet

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* pr suggestions and handled the buttons actions correctly

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/View/ManageRoomMemberSheetView.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* fixed some compilation errors

* added some documentation

* using a struct instead of a protocol

* using arguments instead of a struct

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2025-05-19 14:17:57 +00:00
Doug
2ea9302095 Update the SDK. 2025-05-16 09:58:05 +03:00
Stefan Ceriu
433b042038 Fix room list heroes label format
- change from `Alice, Bob and Charlie` to `Alice, Bob, Charlie and 42 others` (when applicable)
2025-05-12 19:40:14 +03:00
Stefan Ceriu
16f16b488f Replace the old RoomInfoUpdateListener with the SDKListener 2025-04-29 19:45:55 +03:00
Doug
57ce46e1bf Disable the composer when you don't have the power to post. (#4076) 2025-04-29 10:12:20 +01:00
Stefan Ceriu
68b95764f9 Remove now unnecessary RoomListSummary lastMessageFormattedTimestamp 2025-04-28 18:51:13 +03:00
Stefan Ceriu
5a56abcfc7 Remove delivered notifications for rooms that have meantime become fully read and have messages newer than what's delivered
- this is a best effort solution to cleanup outdated notifications when using multiple clients and reading them elsewhere
2025-04-28 18:51:13 +03:00
Doug
6b3d5e25b5 Show the kick/ban reason in the timeline. (#4071) 2025-04-28 12:17:45 +01:00
Doug
4ed3f44a51 Fix a bug where your own emotes showed as '* You emoted'. (#4038) 2025-04-17 12:39:41 +01:00
Doug
fb104a4077 Refactor SecureBackupControllerListener into SDKListener and use it everywhere. (#4030) 2025-04-16 08:36:57 +01:00
Doug
1bc16c84ba Prefix the user's own messages with 'You' in the room list. (#4022) 2025-04-14 14:00:19 +01:00
Mauro Romito
6c07af84cc sdk: update to 25.04.14 2025-04-14 14:15:42 +02:00
Mauro Romito
4400f6c393 change: stricter private timeline media visibility 2025-04-11 10:12:25 +02:00
Stefan Ceriu
c0de3afa1d Bump the SDK and adopt the new MsgLike timeline item types (#4000)
* Bump the RustSDK to v25.04.09

* Adopt new MsgLike based timeline item structure.

* Move the `replyDetails` and `isThreaded` to the `RoomTimelineItemProperties`

* Restructure the TimelineItemFactory

* Fix line length warning

* Rename `msgLikeContent` to `messageLikeContent` wherever possible.

* Move the `EventTimelineItem` mocks to the SDK mocks folder.
2025-04-10 14:04:16 +03:00
Mauro Romito
b3bff57ed9 refactor: manage member sheet in timeline
better implementation

updated tests

Update ElementX/Sources/Screens/Timeline/TimelineViewModel.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

fix
2025-04-09 15:03:54 +02:00
Mauro Romito
58a3d0a7f3 feat: report a room
updated tests

updated tests

added a feature flag to report room

removed delay

rename
2025-04-07 17:17:08 +02:00
Mauro
302bc6c415 Add alerts with reason for kick and ban (#3967)
* feat: added alerts with reason for kick and ban

in the room members list screen

* fix tests
2025-04-01 16:06:40 +00:00
Stefan Ceriu
c392c57c25 Bump the RustSDK to v25.03.31
- adopt new async throwing methods
- use the sdk side TimelineStart virtual timeline item
- remove async from `directRoomForUserID` as it's not async on the rust side
- remove async from `retryDecryption` as it's spawning not blocking on the rust side
2025-04-01 13:12:29 +03:00