Commit Graph

31 Commits

Author SHA1 Message Date
Mauro
56eec826df Fix A11y tests (#5104)
* replace NavigationStack with ElementNavigationStack to allow the content to be rendered without a NavigationStack in a11y tests

* fix a11y tests

* update xcodeproject

* swiftformat fix

* use iOS 26.1 for CI

* use a wrapper to solve the issue for a11y tests

* ElementNavigationStack only uses the trick in DEBUG mode, and added a swiftlint rule to prevent the usage of NavigationStack
2026-02-13 16:45:58 +01:00
Stefan Ceriu
04053ae69b Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Doug
9dab13eed5 Use more Liquid Glass in the room/space screen toolbars (#4965)
* Add a glass style to the Room/Space header view on iOS 26.

* Update snapshots and fix the join call button.
2026-01-16 19:29:27 +00:00
Lukas
83594b4d2f Add "Translate" to TimelineItemMenuActions (#4846)
* Add "Translate" to TimelineItemMenuActions

* Update TimelineView.swift

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

* Update strings using `download-strings`

* Update ElementX/Sources/Screens/Timeline/View/ItemMenu/TimelineItemMenuAction.swift

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

* Clear `textToBeTranslated` after translation was dismissed

* `swift run tools download-strings --all-languages`

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
# Conflicts:
#	ElementX/Resources/Localizations/et.lproj/Localizable.strings
#	ElementX/Resources/Localizations/fr.lproj/Localizable.strings
#	ElementX/Resources/Localizations/hr.lproj/Localizable.strings
2026-01-05 14:37:06 +00:00
Mauro
6160c44d67 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00
Stefan Ceriu
a2fffe35f0 Implement link previews for text messages using Apple's LinkPreview framework (#4520) 2025-09-19 12:48:09 +00:00
Doug
d642368800 Stop storing the openURL action to fix a retain cycle.
Uses the existing timeline action instead.
2025-09-03 17:39:16 +01:00
Doug
cda1872b8f Use the UserSession for VoiceMessageMediaManager injection too. 2025-08-27 18:13:03 +01:00
Doug
196fb5d02a Bundle ClientProxy & MediaProvider injections together in UserSession. 2025-08-27 18:13:03 +01:00
Stefan Ceriu
0915cb81a8 Multi file uploads (#4358)
* Allow MediaPickerScreen users to select the media selection mode (single or multiple)

* Fix cancellation

* Add support for multiple media URLs on the MediaUploadPreviewScreen.

* Support processing more URLs on the `MediaUploadingPreprocessor` and sending more on the `MediaUploadPreviewScreen`

* Add feature flag for `multipleAttachmentUploadEnabled`

* Add a label showing the current preview item index in the MediaUploadPreviewScreen

* Add support for dragging and dropping or pasting multiple items at the same time.

* Support sharing more than one file through the share extension.

* Limit the number of items that can be shared in one go to 5.

* Fix unit tests

* Fix incorrect fatal error when dealing with single selection media pickers.

* Document the `multipleAttachmentUploadEnabled` usage in the context of the MediaPicker.

* Use a task group for processing selected media in the photo library picker.

* Use a task group for processing multiple selected media in the MediaUploadingPreprocessor

* Switch the maximum number of items that can be shared to 10.

* Allow multiple items to be pasted at the same time.
2025-07-30 15:44:05 +03:00
Stefan Ceriu
77b923c056 Fixes #4222 - Hide timeline item actions that the user's power level does not allow 2025-06-18 17:39:45 +03:00
Stefan Ceriu
b75099a1d4 Add "reply in thread" timeline item action menu entry. 2025-06-10 15:09:20 +03:00
Stefan Ceriu
eeff596932 Move timeline drag and drop handling to the recently introduced TimelineView. 2025-06-10 08:57:08 +03:00
Stefan Ceriu
d0ab8c9dff Rename the RoomScreen's roomContext to plain context 2025-06-10 08:57:08 +03:00
Stefan Ceriu
ce277bfd7e Threaded timeline composer 2025-06-10 08:57:08 +03:00
Doug
bb384705ca Fix a couple of crashes on macOS from a missing environment object. (#4153) 2025-05-28 11:24:35 +01:00
Stefan Ceriu
ffd6c825ef Introduce a new SwiftUI TimelineView layer (wrapping the representable) to hold all the timeline specific bindings that are currently duplicated throughout the screens a timeline is used. 2025-05-23 16:08:18 +03:00
Mauro
431828828d Render Room and Message Pills (#3809)
* added a way to render the room and the message

pills, but is WIP

* permalinks now get converted into pills!

* fixed an issue where room address mentions

were not adding a URL properly but a string

* updated tests

* c

* Revert "c"

This reverts commit 5c80252fa23dba7e4d44f2a07fbf1e9500e37c82.

* updated tests

* more tests

* created APIs to get a specific RoomSummary

given the id or the alias

* small mention builder improvement

* pr suggestions
2025-02-25 13:46:01 +00:00
Doug
4312a604c1 RoomTimeline… refactor (drop the Room). (#3728)
* Add the timeline controller factory to the timeline view model.

In preparation for building a timeline to swipe through media in QuickLook.

* Refactor RoomTimelineControllerFactory.

* Refactor RoomTimelineController.

* Refactor RoomTimelineProvider.
2025-02-03 14:14:01 +00: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
Stefan Ceriu
e75c930d8f Media gallery - part 1(#3588)
* Introduce a `MediaEventsTimelineFlowCoordinator`
* Update SDK API and architecture
* Add a feature flag, add translations
* Move the media events timeline presentation under the room flow coordinator state machine
* Rename `TimelineViewState.timelineViewState` of type `TimelineState` to `timelineState`
* Enabled SwiftLint's `trailing_closure` rule and fix the warnings.
2024-12-06 16:58:14 +02:00
Stefan Ceriu
6c09884783 Fix #1934 - Hook reaction pickers into the system's recently used keyboard emojis (#3453) 2024-10-25 19:58:56 +03:00
Doug
74ff86695e Add developer option to hide media in the timeline. (#3366) 2024-10-03 17:59:39 +01:00
Doug
33c172b0f2 MockMediaProvider → MediaProviderMock. 2024-10-03 10:58:59 +01:00
Matthew Hodgson
bfecde092e quick and dirty /join command (#3288)
Co-authored-by: Mauro Romito <mauro.romito@element.io>
Co-authored-by: Mauro <34335419+Velin92@users.noreply.github.com>
2024-09-19 14:29:42 +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
87f8c2eaaf TimelineKind refactor (#3193) 2024-08-22 18:33:21 +00:00
Mauro
bbb462bd83 Pinned Events Timeline actions and differentiation (#3182) 2024-08-22 17:35:44 +02:00
Stefan Ceriu
34eb596c1a Introduce a new RoomProxyType and treat rooms differently based on their membership state 2024-08-21 12:24:20 +03:00
Mauro
11072ce574 RoomScreenViewModel refactor part 2 (#3169) 2024-08-14 18:03:46 +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