Commit Graph

233 Commits

Author SHA1 Message Date
Stefan Ceriu ba031c8472 Convert the timeline's long press gesture recogniser to UIKit and prevent scroll view conflicts 2025-10-13 14:32:58 +03: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
Doug 6377d9be67 A couple of small tweaks. (#4569)
* Stop ignoring the safe area with the suggestions view.

They weren't visible on iPad (hidden behind the sidebar) and I can't find any instance when they're shown where the safe area comes into play.

* Make sure the room list deselects the cell when dismissed a room.

* Use the backports pattern in more places.

* Fix the annoying header on macOS.

* Silence some warnings

* Fix compound CI branch name.
2025-10-03 12:09:17 +01:00
Stefan Ceriu 75d179a768 Remove unnecessary link preview vstack bottom padding when there are no links present. 2025-09-24 07:34:43 +03:00
Stefan Ceriu bfaca7cff9 Implement link previews for text messages using Apple's LinkPreview framework (#4520) 2025-09-19 12:48:09 +00:00
Mauro Romito 826230001b added the avatar and the room title as subtitle in the thread timeline as a principal action
also added a fix for the erroneous reply in thread action while in a thread, and also discovered that we can lead align the principal action again on iOS 26 (so it was a beta issue)
2025-09-16 18:26:03 +02:00
Stefan Ceriu a3a30bfc12 Rename the formatted body text snapshots and regenerate them 2025-09-10 14:52:00 +03:00
Stefan Ceriu d16f0ac8d0 Extract HTML fixtures out of the FormattedBoxyText previews. 2025-09-09 17:17:40 +01:00
Stefan Ceriu bc55cf4a10 Add support for ordered and unordered lists. 2025-09-09 17:17:40 +01:00
Stefan Ceriu d982f86320 Overhaul the FormattedBodyText previews 2025-09-09 17:17:40 +01:00
Stefan Ceriu af7a3a24f6 Add an initial version of the V2 AttributedStringBuilder 2025-09-09 17:17:40 +01:00
Doug 2f2e6f6226 Revert weak media provider (#4483)
* Revert "Address the real lifetime issue of the SDK's `Client` by making `Context.mediaProvider` weak. (#4466)"

This reverts commit c794144ef1.

* Better docs.
2025-09-08 17:48:58 +01:00
Doug c794144ef1 Address the real lifetime issue of the SDK's Client by making Context.mediaProvider weak. (#4466)
This reverts commit 927aea4bfe.
2025-09-05 17:18:14 +00: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 5be7967f94 increase line limit for name in FileRoomTimelineView 2025-09-05 15:07:27 +02:00
Doug 86f978a439 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 24067ce275 Use the UserSession for VoiceMessageMediaManager injection too. 2025-08-27 18:13:03 +01:00
Doug f67f826bb7 Bundle ClientProxy & MediaProvider injections together in UserSession. 2025-08-27 18:13:03 +01:00
Stefan Ceriu df335bd2b1 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
Mauro Romito 97f517129f hit region issues were caused by dynamic type checks not working properly, so they have been removed 2025-07-21 20:11:18 +02:00
Mauro Romito 8a66cbad68 - improved detection of false positives for dynamic type size
- improved also a11y for the knock request message
- improved a11y for reply view
2025-07-21 20:11:18 +02:00
Mauro Romito 1064a9f908 improve threads summary view a11y 2025-07-21 20:11:18 +02:00
Mauro Romito f45a5f814e read receipt cell should be grouped and the avatar accessibility hidden 2025-07-21 20:11:18 +02:00
Mauro b816f0cf56 A11y: added a hint to inform the user that max selections have been reached (#4308)
* a11y added a hint to inform the user that max selections have been reached

* added string
2025-07-08 17:33:47 +02:00
Mauro c60fd88577 Aadded sender name when voiceover focuses a poll title (#4306)
* added sender name in poll voiceover

* improved the code

* code improvement
2025-07-08 16:37:27 +02:00
Mauro Romito 9d5a09810b a11y label for pinned items + fix for the pinned items banner when voice over is on 2025-07-07 16:46:45 +02:00
Doug 030a9bfbef Update and enable the new bloom style on the home screen. (#4291)
* Update Compound

* Adopt the new accent colour (and gradient) tokens.
2025-07-07 11:23:03 +01:00
Mauro Romito a562d239db a11y poll improvements 2025-06-26 12:52:36 +02:00
Stefan Ceriu 087a07c01b Fix thread summaries being shown when the thread feature flag was disabled. 2025-06-19 14:01:06 +03:00
Stefan Ceriu ccb0fc7de0 Fixes #4222 - Hide timeline item actions that the user's power level does not allow 2025-06-18 17:39:45 +03:00
Mauro Romito 12e55d6c28 improved reactions a11y 2025-06-18 11:23:45 +02:00
Mauro Romito 5b6f4a30f0 updated strings 2025-06-17 12:56:19 +02:00
Mauro Romito 6c5813b534 improved a11y in CollapsibleRoomTimelineView 2025-06-17 12:56:19 +02:00
Stefan Ceriu 5315f962c6 Render the number of thread replies on the thread summary timeline view. 2025-06-12 16:54:53 +03:00
Stefan Ceriu 3ef479305a Add "reply in thread" timeline item action menu entry. 2025-06-10 15:09:20 +03:00
Stefan Ceriu 93f081d93d Stop hiding replies in threaded timelines as that's now properly supported as of https://github.com/matrix-org/matrix-rust-sdk/pull/5198 2025-06-10 15:09:20 +03:00
Stefan Ceriu 21ece09678 Tweak the thread summary design 2025-06-10 15:09:20 +03:00
Stefan Ceriu a4398b45fa Move timeline drag and drop handling to the recently introduced TimelineView. 2025-06-10 08:57:08 +03:00
Stefan Ceriu 952e4f86c2 Rename the RoomScreen's roomContext to plain context 2025-06-10 08:57:08 +03:00
Stefan Ceriu 21e07e164c Setup composer actions within threaded timelines. 2025-06-10 08:57:08 +03:00
Stefan Ceriu 9804be70eb Threaded timeline composer 2025-06-10 08:57:08 +03:00
Mauro Romito 26a7d5ac82 pr suggestions 2025-06-06 10:49:29 +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 210a0dba1a Setup action forwarding for threaded timelines. 2025-05-30 13:32:29 +03:00
Doug 8a1a0ce1a4 Fix a couple of crashes on macOS from a missing environment object. (#4153) 2025-05-28 11:24:35 +01:00
Stefan Ceriu d058e7cd25 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
Stefan Ceriu 10fb2b5dda Add mechanism for opening up a threaded timeline 2025-05-20 12:18:55 +03:00
Mauro 9a8819ac26 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
Stefan Ceriu e1984ccdc0 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 806d676299 Introduce a TimelineItemThreadSummary object (#4032)
* Introduce a `TimelineItemThreadSummary` object to hold details about threads starting from that particular item

This patch introduces a thread summary object that will be available on main timeline messages that are the root for a given thread.
It currently provides the latest message content and sender for that thread but it will grow to provide info on the number of replies, unreads etc.

It also add a new UI component called `TimelineThreadSummaryView` that makes use of this data and is in turn used by the bubbled styler to render it in the timeline.

The rest of the PR is about refactoring on the `RoomTimelineItemFactory` so that replies and thread summaries use similar paths and builders.

* Add a feature flag for threads

* Address PR comments

* Converge on single implementation for message previews
2025-04-16 16:19:29 +03:00