Commit Graph

153 Commits

Author SHA1 Message Date
Doug
681ec8ee38 Add a RoomScreenHook. 2025-06-10 10:28:18 +03:00
Mauro Romito
d05108796f tombstoned and upgraded rooms implementation
added tests

tombstoned room avatar
2025-06-06 10:49:29 +02: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
1e58795a65 User verification state indicators (#3793)
* Introduce a `UserIdentityProxy` and have it combine upstream methods into an easy to digest  `UserIdentityVerificationState`. Use it in a dedicated `VerificationBadge` UI component

* Show a DMs counterpart verification state in the room header

* Show a warning on the room details `People` entry when there are identity verification state violations on any of the members.

* Show verification badges in the room member list

* Show a withdraw verification section on the room member details for users that have pinning violations.

* Remove the verification section from the profile screen as there's no reliable way to keep it up to date
- the underlying Rust SDK Olm Machine can be rebuilt without notice which would break any existing user identity change streams.

* Update preview test snapshots
2025-02-18 08:37:34 +02:00
Doug
bacaf5df8d Use the new preview screen when tapping media on the room and pinned events screens. (#3736)
* Use the new TimelineMediaPreview modifier on the room and pinned timeline screens.

* Use the same presentation logic for all timeline media previews.

* Fix a bug with the detection of the timeline end.

* Send pagination requests from the media preview screen.

* Add SwiftLint to the Danger workflow (it is no longer installed on the runner).

* Put SwiftLint back on all of the GitHub runners too.

* Set the function_parameter_count lint rule to 10.

* Make sure to clean-up any previews when the coordinator is done.

* Handle the viewInRoomTimeline action more appropriately.
2025-02-05 13:27:23 +00:00
Valere
9fe7b3e266 Warn and block sending on verification violation (#3679)
* feat(crypto): Warn and block sending on verification violation

* fixup: Fix ComposerToolbar previews

* fixup! add ComposerToolBarViewModelTests for canSend

* add new preview tests for verification violations

* Use `deferFulfillment`s in the unit tests.

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2025-01-20 18:29:34 +02:00
manuroe
c29f4cc9b4 Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Mauro
89ac38c91b Implement Knock Logic (#3573)
* WIP RequestToJoin struct

* implemented the logic to display the cells

* knock request banner accept flow

* mark all knocks as seen implemented

* details logic

* implemented accept, decline and ban in the list

* added a loader and modified the stacked view

of the banner

* pr suggestions

* updated naming and loading strings

* added the initial loading state

improved code and the tests

* updated a string that has changed

* code improvement

* tests for the room screen view model

* room details tests

and improved the knock requests tests for the room screen

* knock requests list tests

* added error state alerts with retry

* struct has been renamed on the sdk

so I renamed it also on the app side

* update SDK
2024-12-16 15:32:45 +01:00
Mauro
3ffd37d4ae Knock Requests navigation flows (#3555)
* implemented navigations

* better naming for the enum

* removed list to banned users navigation

* polished the code

* avatarURL
2024-11-26 11:47:34 +00:00
Mauro
3ce794ebfc Knock Requests banner display logic (#3550)
* added the join rule to the info

* update SDK and added logic to display the banner

in the room screen

* added the logic to display the banner
2024-11-25 13:14:02 +01:00
Stefan Ceriu
7655b33f5d Fixes element-hq/element-meta/issues/2525 - Display a warning when a user's pinned identity changes 2024-10-07 20:47:31 +03:00
Mauro
98d7654a1d Remove message pinning FF (#3318) 2024-09-30 12:32:35 +00:00
Stefan Ceriu
89eae00479 Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Mauro
bbb462bd83 Pinned Events Timeline actions and differentiation (#3182) 2024-08-22 17:35:44 +02:00
Doug
6a44d79b6e Use native video call picture in picture! (#3190)
* Use native video call picture in picture!

* Handle isSupported, isPossible and web view errors.

* Use new canEnterPip method.

* Hide a room's Call button when already joined to the call.

* Tweak feature flag description.

* PR comments.
2024-08-21 17:48:57 +01:00
Doug
bcf417cabd Navigation support for upcoming Element Call Picture in Picture mode. (#3174) 2024-08-16 11:25:36 +01:00
Mauro
11072ce574 RoomScreenViewModel refactor part 2 (#3169) 2024-08-14 18:03:46 +02:00
Mauro
803c61e879 PinnedBanner is now managed by the RoomScreenViewModel (#3163) 2024-08-14 12:38:10 +02:00
Mauro
ecddcfcd16 RoomScreenViewModel is now TimelineViewModel (#3157)
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2024-08-13 13:36:40 +02:00
Mauro
0a73adf0cc Remove links from pinned events banner (#3153) 2024-08-12 10:43:30 +02:00
Mauro
293c5b234e Navigate to the Pinned events timeline (#3139) 2024-08-08 18:29:39 +02:00
Mauro
c23851bbe6 Pinned events banner goes backwards (#3128) 2024-08-07 14:01:01 +00:00
Mauro
07f2242ed0 Pinned events banner loading state (#3118) 2024-08-06 15:46:56 +02:00
Doug
0a17366ebf Add Encryption Authenticity explanations. (#3116) 2024-08-06 10:45:46 +01:00
Mauro
28bfa3f5dc Pinned items timeline implementation for the banner (#3099) 2024-08-05 14:09:05 +02:00
Mauro
30351a7712 Pin/Unpin Logic (#3084) 2024-07-26 20:41:00 +02:00
Mauro
35e69bae24 Hide/Show pin banner based on scroll direction (#3080) 2024-07-24 12:15:36 +02:00
Mauro
ef4bbb9f6b Pinned Items Banner UI (#3072) 2024-07-22 12:57:04 +00:00
Mauro
fee3d3c8c0 Pinning items Feature Flag (#3063) 2024-07-18 18:28:30 +02:00
Doug
5370ba1658 Fix a potential race condition when redacting a message. (#3061)
* Refactor the timeline item menu action provider.

- Move it into its own struct.
- Use an item, not an ID so it doesn't randomly change.
- Move permissions into the room screen view model.

* Use the stable ID when redacting/editing/forwarding a message.

Just like we do when fetching the item in the actions menu.
2024-07-18 15:14:38 +01:00
Mauro
ef465d3004 Volatile draft to restore the composer after an edit. (#2996) 2024-07-02 14:48:50 +00:00
Stefan Ceriu
2ad1764a6b Remove redundant remove failed sent message menu 2024-06-28 14:28:33 +03:00
Mauro
352f6095a9 Remove layout styling abstraction (#2982) 2024-06-27 18:25:25 +02:00
Doug
5231a92dc4 Stop the timeline from requesting back pagination whilst loading existing items. (#2969)
* Handle Rust error "can't subscribe to the back-pagination status on a focused timeline"

* Fix a bug where the timeline was attempting to paginate before adding the items.

* Stop the timeline from paginating whilst loading existing items.
2024-06-27 14:20:44 +01:00
Mauro
60d4fccc07 Hide timeline style selection (#2968) 2024-06-26 12:42:12 +02:00
Doug
6e834e7f8b Use the room heroes when computing a DM avatar. (#2900)
* Use room heroes for DM avatar content ID.

* Use RoomAvatar.heroes for the DM Details stack.
2024-06-19 10:27:10 +00:00
Stefan Ceriu
4bd330647f Bring back failed message state rendering and a redaction option. Bump the RustSDK to 1.0.15 2024-06-18 13:07:16 +03:00
Mauro
8b8cee0a78 Store and restore drafts (#2898) 2024-06-13 12:19:38 +00:00
Stefan Ceriu
425f4bd45f Fixes #2842, fixes #2841 - Adopt new message sending queue API
- automatically retry failed requests as soon as the network is availble again
- remove manual retry options
2024-06-06 12:59:03 +03:00
Stefan Ceriu
83163012f6 Fixes #2808 - Switch the message sending failure options from a dialog to an alert
* Fixes #2808 - Switch the message sending failure options from a dialog to an alert
- this prevents it from showing up as a popup on the room list on an iPad
- it used to be set on the timeline and not on the timeline item because of our use of a UITableView
* Cleanup room screen action names
2024-05-09 14:35:47 +03:00
Doug
a122c30ce4 Move message forwarding out of the flow coordinator. (#2738) 2024-05-07 15:04:11 +01:00
Doug
452a4c12b8 Permalink polish (#2771)
* Fix unbalanced padding.

* Animate the scroll to an event when it is already loaded.

* Perform the timeline clearance immediately before replacing the items.
Hides the empty timeline that was briefly shown.

* Make switching timeline more resilient.
2024-05-02 17:51:38 +01:00
Doug
e90fcd4b4e Permalink Tweaks 2 (#2766)
* Missing changelog.

* Parse bare room aliases as permalinks.

Update the SDK.

* Fix tapping the same permalink twice.

Add a test.

Don't clear the focussed item when reaching the bottom of the timeline.

* Make sure sending a message returns to live.
2024-04-29 17:32:16 +01:00
Doug
0b2bb7f056 Prepare for event focus and forward pagination (#2745)
Neither are available yet.
2024-04-25 18:32:33 +01:00
Stefan Ceriu
3214106909 element-hq/element-x-ios/issues/2636 - Expose paths for focusing replied-to timeline items by tapping on an in-reply-to message bubble 2024-04-16 15:01:48 +03:00
Stefan Ceriu
2c4a12da4b Fixes #2347, #2348, #2349 - Add support for typing notifications 2024-02-13 15:27:52 +02:00
Stefan Ceriu
871471bbb0 Fixes #2414 - Move member loading to the room member detail screen, avoid blocking the whole application 2024-02-07 07:31:25 +00:00
Stefan Ceriu
e42b1c2a68 Remove unused SwiftUI timeline version 2024-02-02 18:20:14 +02:00
Stefan Ceriu
e8d5f00903 Prevent unnecessary backpagination requests from running every time a room is entered
- related to #1760 which moved initial timeline item computations to a serial queue
2024-02-02 18:20:14 +02:00
Mauro
c14530d60b Remove Read Receipts Feature Flag (#2228) 2023-12-12 15:27:15 +01:00