Commit Graph

4451 Commits

Author SHA1 Message Date
Doug 81b33da6ab Switch back to using the stable version of SwiftFormat. (#5850) 2026-07-08 11:01:55 +01:00
Mauro 5fd4551099 Scanning states for the media events timeline screen (#5847)
* implemented the scanning states for the media events timeline screen

* add mock urls to the URL.mock...
2026-07-08 11:51:56 +02:00
Mauro 9e1d95db1c Content scanning view for reply preview (#5842)
* implement a MediaView to delegate at the view level the usage of the content scanner service, to determine how to render the media.

* fix for a small design mismatch

* fix for greedy error state

* updated naming

* just making some screenshot that have been affected by a string change on Localazy

* pr suggestions + updated strings

* implemented content scanning in the timeline reply view

* pr suggestions
2026-07-07 17:49:16 +02:00
Matthew Hodgson 834938f585 don't keep re-prompting the user to migrate if they get spontaneously logged out. (#5844) 2026-07-07 15:28:40 +02:00
Element CI 9234060fb6 Translations update 2026-07-06 20:28:38 +02:00
renovate[bot] 1e451ac3e3 Update Project Dependencies (#5818)
* Update Project Dependencies

* Run XcodeGen, update Package.resolved and Settings.bundle

# Conflicts:
#	ElementX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

* Run XcodeGen, update Package.resolved and Settings.bundle

* updated package

* Run XcodeGen, update Package.resolved and Settings.bundle

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Element CI <ci@element.io>
Co-authored-by: Mauro Romito <mauro.romito@element.io>
2026-07-06 18:01:05 +02:00
Mauro a2c1ca06dd Content Scanning View (#5831)
* implement a MediaView to delegate at the view level the usage of the content scanner service, to determine how to render the media.

* fix for a small design mismatch

* fix for greedy error state

* updated naming

* just making some screenshot that have been affected by a string change on Localazy

* pr suggestions + updated strings
2026-07-06 16:15:27 +02:00
Mauro 0a77ba6c90 Swift format enforce isEmpty rule (#5843)
* swift format enforce isEmpty rule

* revert scheme

* use trailing closure
2026-07-06 15:39:16 +02:00
Mauro d2ef1e71f9 Remove the "unflip" of the timeline when in voice over mode (#5835)
Keep the timeline as it is in voice over mode, and don't "unflip" it
2026-07-06 14:00:53 +02:00
Stefan Ceriu b8e6421551 Fix various project warnings 2026-07-03 19:30:28 +03:00
Stefan Ceriu 2815b52f49 Update the readme to fix the unit tests shield and remove the SonarCloud ones (#5832)
Fix unit tests shield and remove SonarCloud
2026-07-03 17:10:43 +01:00
Stefan Ceriu 000bf81f95 Bump the RustSDK to a new "apple-release" profile build distribution
and hopefuly a smaller binary size
2026-07-03 16:34:14 +03:00
Stefan Ceriu dd6f8bc281 Group RoomTimelineItemFactory public methods under Public/Private marks
Move the protocol methods to the top under a Public mark and gather the
helpers beneath a Private mark.
2026-07-03 13:39:45 +03:00
Stefan Ceriu 02d9ed1f0e Address search PR review comments
- Drop the redundant searchService coordinator/view model parameter; derive it from the client proxy.
- Rename the globalSearch avatar size to search.
- Lift the query observation streams out of their tasks.
- Restore the appeared and updateVisibleRange comments.
- Use CompoundIcon defaults and a scaledFrame for media previews.
- Simplify the result mapping with compactMap(makeResult) and drop unsupported events by returning nil.
- Move the preview helpers beneath the previews.
2026-07-03 13:39:45 +03:00
Stefan Ceriu 4c2243cda1 Fix search screen preview tests and add snapshots 2026-07-03 13:39:45 +03:00
Stefan Ceriu a433793418 Bump the RustSDK to v26.07.02 2026-07-03 13:39:45 +03:00
Stefan Ceriu 9457f2c5fc Index polls, stickers and more event types in search results
The SDK now surfaces polls, stickers, redactions and live location shares
alongside plain messages. Map them to their preview content instead of
dropping them as unsupported events.
2026-07-03 13:39:45 +03:00
Stefan Ceriu 4fbfc87551 Add a Messages tab to global search
Split global search into Rooms and Messages tabs. The Messages tab lists
matching events with the room's name and avatar, a sender-prefixed preview,
rich media (image/video/audio/file) previews, and a loading indicator, then
paginates as you scroll. Queries are debounced and the previous one is
superseded so late results can't clobber a newer search.
2026-07-03 13:39:45 +03:00
Stefan Ceriu 5851100f07 Expose a global search service from the client
Wrap the SDK's SearchService in a SearchServiceProxy that publishes typed
message results and paginates on demand, expose it on the ClientProxy, and
enable the search index store on the session. Also opens up the timeline item
factory's message content builder so the proxy can reuse it.
2026-07-03 13:39:45 +03:00
Element CI 9012161d9d Prepare next release 2026-07-03 02:24:32 -07:00
Mauro 5ea4b46604 Content Scanner Service (#5826)
* implemented the content scanner service with caching and a way to use in the state store context

* fix swiftformat comment enforcing

* pr suggestions
2026-07-02 17:12:39 +02:00
Doug f2d08c23a3 Run swiftformat. 2026-07-02 13:09:34 +01:00
Doug e3ac4a0b6c Fix preview tests/snapshots. 2026-07-02 13:09:34 +01:00
Doug ace05b97d0 Combine the user's own display name/avatar into a single profile.
This is in preparation for adding the user status fields into the profile.
2026-07-02 13:09:34 +01:00
Doug b8860baf49 Rename SearchUsersResultsProxy to SearchUsersResults. It also proxies nothing. 2026-07-02 13:09:34 +01:00
Doug 3ef66cdd05 Rename UserProfileProxy to UserProfile. It's a pure struct and proxies nothing.
Also remove the redundant `userID` property given `id` already exists (for Identifiable conformance).
2026-07-02 13:09:34 +01:00
Doug bdf53b64a8 Add a feature flag for User Status. 2026-07-02 13:09:34 +01:00
Doug 942ecf9965 Remove Hyperion from the Compound Inspector app. (#5828)
It was barely working and the repo no longer exists now anyway.
2026-07-02 11:12:35 +01:00
Mauro Romito 153c258f78 add the content scanner URL to the app settings 2026-07-01 16:24:03 +02:00
Stefan Ceriu f7a4f8a2b4 Fix AccessibilityTests hang on previews expecting expired transient state
The Observation migration (2d486ece3) ported the preview fulfillment loop
from Combine publishers to async sequences but didn't carry over the
publisher path's 1s timeout. Without it, a preview whose expected state never
arrives loops forever.
2026-07-01 16:44:08 +03:00
Doug 036c9ce248 Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26. (#5822)
* Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26.

* Use the .avatar label style for NotificationSettingsEditScreenRoomCell.
2026-07-01 12:58:33 +01:00
Doug 123661537a Make LinkNewDeviceScreen fall back to the App Lock PIN code when there's no passcode. (#5794)
* Fall back to the AppLock PIN code when there's no passcode.

* Add extra tests on the LinkNewDeviceFlowCoordinator.

* Misc tweaks for clarification.

* Regenerate snapshots.
2026-07-01 10:13:18 +01:00
Stefan Ceriu 7097ceb910 Fix voice message recording crashes caused by an isolation assertion failure 2026-07-01 10:35:41 +03:00
Element CI 6aac3bc46e Prepare next release 2026-06-30 06:58:23 -07:00
Mauro Romito bed5e0c288 update sdk 26.06.30 2026-06-30 15:15:36 +02:00
Michael ff9c260674 Limit conversations a message can be forwarded to (#5793)
* Limit conversations a message can be forwarded to

* Review fixups

* fix: remove the unused constant argument

---------

Co-authored-by: Mauro Romito <mauro.romito@element.io>
2026-06-30 14:01:49 +02:00
Mauro 2d486ece33 Use iOS 26 Observation for Unit and Preview tests. (#5797)
* use observation in unit and preview tests instead of the async stream

* use a parsing approach that is independent of the sourcery annotation

* Fix observation deferred fulfillments not receiving the initial value

Observation's observe only emits transitions, not the value present at subscription time. Drop the leading initial value from the affected transitionValues sequences and assert it directly with #expect instead.

* improved docs
2026-06-30 14:01:08 +02:00
Stefan Ceriu c26677753a Filter out SearchScreen empty container errors 2026-06-30 11:18:45 +03:00
Stefan Ceriu 2d274a5e1f Log underlying accessibility test problems 2026-06-30 11:18:45 +03:00
Stefan Ceriu bcee62f198 Fix new swiftformat errors 2026-06-30 11:18:45 +03:00
renovate[bot] 17ae3bcce7 Update dependency swiftlang/swift-syntax to v603 (#5803)
* Update dependency swiftlang/swift-syntax to v603

* Stop hiding Package.resolved file contents in GH reviews.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Doug <douglase@element.io>
2026-06-30 08:50:37 +01:00
Element CI 785193c2d8 Bump the calendar version ready for the next release 2026-06-30 08:04:54 +03:00
Stefan Ceriu 2777075655 Handle the non-deprecated INStartCallIntent for calls from Recents
The call-from-Recents handling was wired entirely to the deprecated
INStartVideoCallIntent (the activity-type registration and the cast), which
also meant the app never handled the modern INStartCallIntent that superseded
it in iOS 13. Switch both to INStartCallIntent and derive isVoiceCall from its
callCapability. Clears the deprecation warning.
2026-06-29 18:10:30 +03:00
Stefan Ceriu 89de0f3f2b Use PostHogConfig(projectToken:host:) instead of the deprecated init
PostHog deprecated `init(apiKey:host:)` in favour of `init(projectToken:host:)`.
The project token is the same value as the old API key, so this is a label-only
swap with no behaviour change.
2026-06-29 18:10:30 +03:00
Stefan Ceriu 122a0052ae Drop the unnecessary @Sendable from the composer attribute enumeration
`NSMutableAttributedString.enumerateAttribute(_:in:options:using:)` runs its
closure synchronously on the calling thread and its `using:` parameter isn't
`@Sendable`. The explicit `@Sendable` on the closure literals was therefore
unnecessary and was the only thing triggering the "capture of non-Sendable
NSMutableAttributedString" and "mutation of captured var in concurrently-
executing code" warnings. Removing it clears all six with no behaviour change.
2026-06-29 18:10:30 +03:00
Stefan Ceriu 95319d13b7 Make the zip and file attaching bug report service steps concurrent 2026-06-29 18:01:57 +03:00
Doug 566d8edeab Fix a bug where scanning a universal link as a QR code would open the app without handling the link. (#5804) 2026-06-29 15:11:15 +01:00
Stefan Ceriu ad8d70ebe0 Fix MediaLoader EXC_BAD_ACCESS ongoingRequests crashes 2026-06-29 16:06:54 +03:00
ElementRobot bfd3756671 Translations update (#5802)
Co-authored-by: Element CI <ci@element.io>
2026-06-29 11:12:13 +01:00
renovate[bot] c901238835 Update zizmorcore/zizmor-action action to v0.5.7 (#5801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-29 11:11:45 +01:00