Commit Graph

233 Commits

Author SHA1 Message Date
Stefan Ceriu 83136af7c4 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
Doug 5e50823223 Allow the services that are configured by secrets to be disabled. (#3961)
* Make the map tiler key optional.

* Make the bug report URL optional.

* Make the sentry URL optional.

* Make the analytics configuration optional and handle consent taking Sentry into account.

* Stop prompting users to report crashes when Sentry is disabled.
2025-04-01 09:24:12 +01:00
Mauro Romito f507709626 a11y: better voice over for voice messages 2025-03-28 10:15:30 +01:00
Doug 51886b0c78 Refactor the MapTiler configuration into a single place. (#3944)
* Refactor the MapTiler configuration into a single place.

* Merge the MapAssets catalog into the normal one.
2025-03-26 14:39:09 +00:00
Mauro Romito 791ce67808 reply view will now render as plain pills
instead of rendering nothing
2025-03-25 14:00:29 +01:00
Mauro Romito f248bdfd92 removed images in pills in favour of text decos
FIX

fix
2025-03-17 14:45:23 +01:00
Mauro a2242c63e2 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 3de025cb85 Rename a couple of missed isEncryptedOneToOneRoom properties. (#3804) 2025-02-20 14:15:49 +00:00
Doug c2e10b910a Update Compound (#3803) 2025-02-20 14:15:26 +00:00
Doug 8ee1427809 Update our development assets. (#3783)
* Replace downloaded test assets with original content.

* Replace AI generated assets with original content.

* Update preview tests snapshots

* Update UI test snapshots.

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
2025-02-11 11:53:35 +00:00
Mauro ac34f9f208 change applied and updated tests (#3751) 2025-02-07 10:08:35 +01: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 d195e603c9 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
Stefan Ceriu d585e208a1 Bump the RustSDK to 25.01.27, adopt the new emoji boosting API. (#3708)
* Bump the RustSDK to v27.01.22, adopt the new emoji boosting API.

* SDK version 25.01.22 😅

---------

Co-authored-by: Doug <douglase@element.io>
2025-01-27 17:49:44 +00:00
Doug 909ee4abf2 Media browser tweaks (#3692)
* Move the media actions from the bottom bar into the details sheet.

* Allow the media type picker to fill the width of the screen.
2025-01-21 17:00:04 +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
Stefan Ceriu 536f01abbd Retrofit deferFulfillment onto snapshot tests. (#3641)
* Retrofit `deferFulfillment` onto snapshot tests.

* Convert a bunch of preview tests to the new fulfillment publisher

* Convert more tests

* Remove unneeded delays from the remaining tests

* Remove snapshotting delay option.
2024-12-20 15:30:59 +02:00
Doug 3aa7edc508 Enable the media browser feature 🖼️ (#3642)
* Overlay a progress indicator for downloads instead of using a toast indicator.

* Update the SDK.

* Remove the feature flag for the media browser.

* Remove the media captions feature flag too.

* Add unit test cases for download failure and swiping between items.

* Snapshots (with the media browser visible in the screen).
2024-12-19 14:15:31 +00:00
Stefan Ceriu 21a15936a9 Fix #3639 - Reorder timeline item menu options 2024-12-19 13:18:12 +02:00
Stefan Ceriu 435dfb8e46 Automatically retry decryptions in the active room when the app becomes active again just in case the NSE received keys we're not aware of (#3628) 2024-12-18 11:10:56 +02:00
Doug 2a865ce5bf Implement the save action when previewing media. (#3630)
* Implement the save action on the media preview.

* Update Compound and use the correct icon.

Also fixes an icon that has been renamed.

* Update the add to photo library usage description to match the designs.

* PR comments.
2024-12-17 16:35:51 +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
Valere 52463cdf8f feat(crypto): Support for new UtdCause for historical messages 2024-12-17 10:15:35 +02:00
Stefan Ceriu 78aa0e3974 Add a comment on bubble background modifier default parameter values. 2024-12-13 19:31:35 +02:00
Stefan Ceriu 13875e61f8 Fix MediaFileRoomTimelineContent tap gesture taking over media event timeline taps. 2024-12-13 19:31:35 +02:00
Stefan Ceriu c97dcc18f2 Simplify how we build bubbles for previewing purposes, make use of the new bubbleBackground modifier. 2024-12-13 19:31:35 +02:00
Stefan Ceriu 40d820d4f4 Stop passing the whole timeline item to the bubble background modifier. 2024-12-13 19:31:35 +02:00
Stefan Ceriu 256ae4d2cc Custom media gallery views for files and voice messages (#3610)
* Extract the timeline item background from the BubbledStyler.
* Use different views for files and voices messages, reuse the timeline content but only keep the bubble background instead of the whole TimelineStyler.
* Add back max voice message width and add missing accessibility label
2024-12-12 17:48:41 +02: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 606eb0a30a Fix a bug where you're shown the remove caption action when it isn't available. 2024-12-12 08:29:15 +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
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
Doug a9e4837b62 Use a Date for the timestamp in all timeline items. (#3590)
* Use a Date for the timestamp in all timeline items.

* UI test snapshots.

* Update snapshots

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2024-12-06 13:55:29 +00:00
Mauro 7cf88a16bd Update sdk to 1.0.78 (#3586)
* updated sdk

* added cases

* correct error tracking

* right error label
2024-12-05 10:55:49 +01:00
Doug 4966083b58 Add new development assets and use in mocks/previews. (#3581) 2024-12-03 17:14:05 +00:00
Mauro 4372048c61 Update SDK 1.0.77 (#3578)
* update SDK

* added new cause case

* added historical message
2024-12-03 12:18:16 +01:00
Doug c8627cfd64 Add support for copying a caption. (#3563)
* Add timeline item action for copying a media caption.

* Fix the action colours when long pressing a timeline item.

Nice side effect: Reasonable sized buttons when button shapes are enabled.

* Re-arrange the Timeline Item Menu.

* Add timeline item menu snapshots for media items.
2024-11-29 12:26:59 +00:00
Doug c598b6325d Fix a bug on iOS 17 where you couldn't long press on a message. (#3567) 2024-11-28 14:44:34 +00:00
Doug 751be7b3a7 Update the SDK. (#3565)
* Update the SDK.

* Add mockMXC URLs to fix all the crashes during tests.

* Refactor Voice Messages to not use a MediaSource for local files.
2024-11-28 08:34:38 +00:00
Doug a292c41ca5 Move the media caption composer (and Add Caption action) behind a feature flag for now. (#3560) 2024-11-27 08:30:10 +02:00
Stefan Ceriu 36980840ed Move timeline item tap gestures to the items themselves instead of the bubbled styler (#3553)
* Stop observing the timeline context where not necessary.
* Rename the timeline `itemTapped` action to `mediaTapped`
2024-11-26 16:25:46 +02:00
Doug 03aaf849ee Update how file captions are rendered (#3554)
* Update the File/Audio captions layout to match Figma.

* Fix caption sizing issues.

The send info label was being added incorrectly.

* Update icon size and regenerate snapshots.

* Fix a regression in the location timeline item layout.
2024-11-26 10:36:46 +00:00
Doug 7e1476d973 Add support for adding/editing/removing media captions. (#3547)
* Add support for editing media captions.

* Add composer snapshots.

* PR comment.
2024-11-21 18:18:27 +00:00
Stefan Ceriu 51227fffe3 Show both defaults and frequent emojis in the timeline item menu, make the list scrollable (#3534) 2024-11-19 21:53:57 +02:00
Stefan Ceriu dc0563764d Fix image animations / remove fading when switching between local and remote echoes. 2024-11-18 14:50:35 +02:00
Doug c888a5b4aa Update compound (#3519)
* Update compound

textPlaceholder is now textSecondary.

* Update compound again with support for button shapes on the plain button style.
2024-11-15 13:42:53 +00:00
Stefan Ceriu ef288a9662 Group image and video metadata in specialised structs (#3518) 2024-11-15 15:00:27 +02:00
Stefan Ceriu 7e192b7571 Enable local echoes for media uploads on development builds. (#3514)
* Enable local echoes for media uploads on development builds.
* Use media sizes when loading timeline items so they can take advantage of the cached local echo data.
2024-11-14 18:33:37 +02:00