Commit Graph

31 Commits

Author SHA1 Message Date
Mauro 9093631f8b Periphery cleanup (#5893) 2026-07-20 11:16:11 +02:00
Mauro ee89f8846f Fix for the media browser showing also images and videos in file mode (#5853)
* fix for the bug that makes the images appear in the file list of the media browser

* pr suggestions
2026-07-09 15:51:46 +02:00
Doug fa67713726 Run SwiftFormat. 2026-05-27 17:11:42 +01:00
Stefan Ceriu 77c5aba326 Forward current composer text to the new poll form to serve as the question/topic 2026-05-22 16:46:42 +03:00
Mauro 602d779e3a Render LiveLocations in the map (#5394) 2026-04-14 18:27:34 +02:00
Doug cea365ac97 Add the empty state to SpaceScreen. (#4985)
* Rename PaginationState.timelineEndReached to PaginationState.endReached.

* Rename PaginationState to TimelinePaginationState.

Also renames PaginationStatus to PaginationState so that a TimelinePaginationState consists of the forward and backward pagination states.

* Add the empty state to SpaceScreen.

Only has 1 of the 2 buttons for now.
2026-01-22 12:37:34 +00:00
Stefan Ceriu b71e667e73 Fix #4837 - Make sure changing the screen mode in the bindings also updates the activeTimelineContext
The original viewState mapping just stopped working properly for some reason. Updating it to `observe()` on `StateStoreViewModelV2` worked properly but I liked the viewAction based solution better, felt more streamlined.
2025-12-12 17:23:58 +02:00
Stefan Ceriu 0e33480928 Switch the MediaEventsTimelineScreen to second iteration of the StateStoreViewModel 2025-12-12 17:23:58 +02:00
Mauro f7dd9cdcf8 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
Mauro e7ee0af70d Implemented message forwarding for media previews and media timelines (#4579)
* implemented message forwarding for media previews and media timelines

* updated tests

* pr suggestion

* fix tests

* fix tests
2025-10-07 14:34:14 +02:00
Mauro eee11ed67c MediaTimelinePreviewDetails can now be opened by long pressing in the media timeline (#4474)
* presenting media actions from the media timeline

* implemented view in timeline and fixed an issue that made dark mode being when trying to delete the file

* pr suggestions
2025-09-05 15:30:36 +02:00
Mauro Romito 155b47e849 tombstoned and upgraded rooms implementation
added tests

tombstoned room avatar
2025-06-06 10:49:29 +02:00
Stefan Ceriu 10fb2b5dda Add mechanism for opening up a threaded timeline 2025-05-20 12:18:55 +03:00
Mauro Romito 0e7533145a 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
Doug b900eec5a2 Fix a crash in the media events screen by storing the active timeline context. (#3746) 2025-02-06 12:27:39 +00:00
Doug cfaa1b455a 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
Doug bad4a8f9c8 Refactor Rust timeline identifiers into our own. (#3731)
* Refactor eventOrTransactionID.

* Refactor uniqueID.
2025-02-04 09:50:46 +00:00
Doug 6cd583d904 Revert back to UIKit for the presentation of the timeline media preview. (#3719)
* Revert back to UIKit for the presentation of the timeline media preview.

* Fix a presentation issue where the media is clipped until the animation finishes.

* Workaround for the preview controller replacing the info button when swiping.

* Use a self-sizing detent on the media info sheet.
2025-01-31 17:28:14 +00:00
manuroe 3950cac085 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
Doug e7cc807084 Add a fullscreen button to TimelineMediaPreviewScreen and hook up swiping through the timeline. (#3638)
* Add a fullscreen button to media previews - Not ideal but the gestures conflict with the preview controller.

* Don't un-flip the preview thumbnail until the preview has disappeared, and only do it on iOS 18.

* Add all of the loaded items for previewing in the preview controller.
2024-12-18 19:10:19 +00:00
Stefan Ceriu 598e604851 Fix state change commented by mistake and simplify snapshot test setup (+ a couple of warnings) 2024-12-17 11:06:33 +02:00
Stefan Ceriu f9be39eb4f Fix the media gallery's empty state showing up at wrong times. 2024-12-16 19:21:28 +02:00
Doug 3a82b88859 Rework the presentation of the media browser quick look view to use SwiftUI. (#3619)
* Embed the media preview quick look inside a full screen cover

With a zoom transition on iOS 18.

* Use a the representable coordinator properly.

* Fix a bug with the toolbar appearance.

* Format

* Try prevent the zoom transition being upside down.

* Fix the snapshot test configuration.
2024-12-16 15:27:50 +00:00
Stefan Ceriu b0f4f42ff2 Add empty states for the media gallery sections 2024-12-13 19:31:35 +02:00
Stefan Ceriu 681daf50ea Stop adding empty groups to the gallery. 2024-12-13 19:31:35 +02:00
Doug 88b5426e97 Hook up the actions in the media details sheet. (#3607) 2024-12-12 09:22:36 +00:00
Stefan Ceriu 114255c5ec Media gallery - support for files and voice messages (#3605)
* Move the voice message views to where they belong
* Add separate struct for each media events timeline view
* Add support for all the different media gallery message types and get the files section working
2024-12-12 10:02:10 +02:00
Doug c827ab9165 Configure the media preview screen based on the event and presentation. (#3604)
* Configure media previews based on the presenting screen.

* Switch on TimelineKind instead of having an isPinnedEventsTimeline Bool.
2024-12-11 15:40:31 +00:00
Stefan Ceriu 0b85964f73 Monthly media gallery separators (#3601)
* Fix the order of the items in the media grid.
* Add media gallery timeline separators.
* Change the `SeparatorRoomTimelineItem` to have it expose a Date timestamp instead of a text string.
2024-12-11 13:32:29 +02:00
Doug e59a705459 Use TimelineMediaQuickLook in the MediaEventsTimelineScreen. (#3598) 2024-12-10 14:56:51 +02:00
Stefan Ceriu caaa89af62 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