Commit Graph

3813 Commits

Author SHA1 Message Date
Mauro e44188024f Improved Defer Fulfillment (#5127)
* improved defer fullfillment

* applied also for async streams

* fix xcodeproject

* better documentation

* restict deferFulfillment  only for Publisher which can never fail
2026-02-20 17:21:35 +00:00
Mauro Romito d6eccd3a64 pr suggestions 2026-02-19 22:40:31 +01:00
Mauro Romito 43fa220b42 updated preview tests 2026-02-19 22:40:31 +01:00
Mauro Romito 04dd0c005f removed unused import and fixed tests for swift testing 2026-02-19 22:40:31 +01:00
Mauro Romito 3dfcb6912f improved the code so that we can use the AudioPlayerState directly to check the playback speed and added localization 2026-02-19 22:40:31 +01:00
Florian 285f8b7834 Voice message: variable play back speed (#5121)
* Implement voice message variable playback speed

* Move playback speed string to Untranslated

https://github.com/element-hq/element-x-ios/pull/5121#discussion_r2822631371

* Address review feedback for voice message playback speed

- Persist voice message playback speed as an enum in AppSettings instead of storing an index.
- Update playback speed cycling to derive from enum allCases and safely fall back to `.default` if the stored value cannot be resolved.
- Apply runtime speed updates in AudioPlayer only when the player is in the `.playing` state.
- Keep MediaPlayerProviderTests formatting/indentation style intact while retaining mock playback speed setup.
- Regenerate preview snapshots for:
  - PlaybackSpeedButton
  - VoiceMessageRoomPlaybackView
  - VoiceMessageRoomTimelineView

* Move VoiceMessagePlaybackSpeed outside AppSettings, remove speedRatio

* Stabilize PlaybackSpeedButton width

* Sync voice-message speed label

- Add voiceMessagePlaybackSpeed to TimelineViewState and bind it from appSettings.$voiceMessagePlaybackSpeed.
- Pass that timeline-level speed into VoiceMessageRoomPlaybackView and use it for PlaybackSpeedButton, so labels update consistently across items.
- Use @EnvironmentObject in VoiceMessageRoomTimelineContent so the view re-renders when timeline context state changes.
- In WaveformInteractionModifier, add .allowsHitTesting(showCursor) to the cursor interaction view so hidden pre-playback cursor hit area does not steal taps from the speed button.
2026-02-19 22:40:31 +01:00
Mauro 7982aef855 Swift Testing for Unit Tests PART 1 (#5119)
* migrated a lot of unit tests to Swift Testing and added a new implementation for deferred fulfillment

more tests migration

Cleaned the code manually to establish some good patterns

more code improvements

some more code improvements

removed empty tests

update project

* more pr suggestions and cleanups

* removed the TestSetup pattern

* fixing claude not reusing tests

* pr suggestion + added indent rule to swiftformat so that we can prevent AIs to change that
2026-02-19 16:20:47 +01:00
Stefan Ceriu fc03e05697 Replace ruby/fastlane tools with swift variants. (#5105)
* Replace ruby/fastlane unit and preview test flows with swift variants.

* Switch to swift-log and Logger for logging

* Address (my own!) PR comments.

---------

Co-authored-by: Doug <douglase@element.io>
2026-02-19 09:13:42 +00:00
Mauro 65a4be3df2 Session verification UI tests update (#5120)
session verification tests UI tests update
2026-02-18 10:57:04 +01:00
Stefan Ceriu bd0198c4a5 Fix some iPad UI test snapshots 2026-02-17 18:59:43 +02:00
Mauro 556b910979 Unify session verification with Android (#5116)
* session verification now does not have a waiting screen, but the initial state instead presents a loading state. Everything is also handled with one single action

* use progress view in place of the spinner icon

* change progress view tint
2026-02-17 17:59:14 +01:00
Mauro e8a6af1956 Swift Testing for Compound (#5110) 2026-02-16 14:04:04 +01:00
Mauro 26bfa6ed7c Compound - Swift 6.2 and Main actor isolation (#5109)
* compound is now using 6.2 and main actor isolation + some tweaks to make it build tests and EX

* better handling of the nonisolated context for CompoundUIColors

* improving docs

* fix comment

* remove unused Sendable conformance
2026-02-16 10:19:12 +00:00
Stefan Ceriu b4eedfef59 Fix the upload_dsyms_to_sentry lane after plugin update. 2026-02-16 12:11:25 +02:00
Mauro Romito d25a5c825c make .invited the default history visibility of a dm 2026-02-16 10:45:42 +01:00
ElementRobot acc08a3c8e Translations update 2026-02-16 10:45:27 +01:00
Doug 9207f004b0 Define the notification sound name in AppSettings. (#5106) 2026-02-13 16:36:45 +00:00
Stefan Ceriu 8f9d507e28 Update the RustSDK and adopt the new tracing configuration that allows maximum size and age limits on all logs.
Set that 100Mb and a week and remove previous rageshake uploading checks as they are no longer required.
2026-02-13 18:00:23 +02:00
Doug 2ee095554b Update the Gemfile.lock with Ruby 4.0 (#5101)
It was trying to downgrade a bunch of things from 2.4.0 to 1.6.8 🤨
2026-02-13 15:58:45 +00:00
Mauro 0e40cc7008 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
Mauro Romito b11438e38d fix auth tests 2026-02-13 16:45:39 +01:00
Mauro Romito b885282b6b fix UI tests not related to auth 2026-02-13 16:45:39 +01:00
Stefan Ceriu e288be6860 Fix integration tests room header discovery 2026-02-12 18:58:28 +02:00
Doug b34832f7f8 Re-write the space flow state machine configuration and cover it more in UI tests. (#5098)
* Use the old state machine configuration style.

* Test starting the space settings flow in UI tests.

* Test starting the create space room flow in UI tests.
2026-02-12 13:19:20 +00:00
Doug 92a5fb395c Lock the Link New Device flow to portrait and improve Cancel/Try Again handling. (#5094)
* Lock the LinkNewDeviceScreen to portrait.

* Add cancel buttons to the QR Code errors and handle cancel/startOver correctly.

* Use the shared QRCodeErrorView in the LinkNewDeviceScreen.

* Clarify the different QR Error/ErrorStates a bit more.

* Update snapshots.
2026-02-12 11:21:24 +00:00
Element CI 6b93bbf558 Prepare next release 2026-02-12 01:41:18 -08:00
Stefan Ceriu c3bdb19125 Remove the Signposter from the integration tests target, fix build. 2026-02-11 18:52:22 +02:00
Aaron 485bbc3e56 Update the active Space Filter Button in the Chats header to be Primary instead of Accent. 2026-02-11 17:38:43 +01:00
Skye Elliot 4841a3bdaf Add history sharing badges to room details (#5043)
* chore: Add dependency `SwiftFlow` for use in avatar header badges.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>

* feat: Display history sharing pill in room details.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>

* tests: Add tests for history sharing room details pill.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>

* tests: Update screenshots for RoomDetailsScreen preview tests.

* fix: Use Localazy translations for room details badges

* fix: Address review comments

* fix: Remove line limit from room details badges

---------

Signed-off-by: Skye Elliot <actuallyori@gmail.com>
2026-02-11 12:22:39 +00:00
renovate[bot] 992cec91d6 Update dependency fastlane to v2.232.1 2026-02-11 09:18:29 +02:00
Element CI 4116ee8a57 Prepare next release 2026-02-10 10:08:45 -08:00
Doug 071a1eeb52 Remove the global UserIndicatorController.alertInfo, replacing it with local alertInfo usage. (#5087) 2026-02-10 17:16:11 +00:00
Mauro Romito b725d8be80 make the FFs volatile and initialised to true by default 2026-02-10 17:08:07 +01:00
Mauro Romito 2cd58b93e8 Enable spaces second iteration FFs 2026-02-10 17:08:07 +01:00
Doug 17cc41e6a0 More Space tweaks. (#5086)
* Centre align the title in the space filter cells.

* Update SpaceRoomCell and SpaceHeaderView with consistent content.
2026-02-10 13:44:04 +00:00
Doug 617fa27010 Update the SDK. (#5081) 2026-02-10 15:12:16 +02:00
Mauro Romito 9ced1cff2e always present the space selection even for pre selected spaces 2026-02-10 13:28:55 +01:00
Stefan Ceriu 591ce3975b Add a rounded rect border around space avatars
.. and also refactor the LoadableAvatarImage to stop having knowledge of spaces and instead focus on generic shapes.
2026-02-10 14:20:53 +02:00
Stefan Ceriu 20a84dd896 Fix multiple server confirmation request crashes and show a modal indicator sooner 2026-02-10 12:17:16 +02:00
Stefan Ceriu 32ec97a866 Make the PassthroughWindow work correctly on iOS 26
As opposed to passing through all the touches; as per https://stackoverflow.com/a/79768998/730924
2026-02-10 12:17:16 +02:00
ElementRobot 35800ed6de Translations update 2026-02-09 19:16:15 +01:00
Mauro Romito db3a6239e1 renamed function to resetRoomList 2026-02-09 18:22:41 +01:00
Mauro Romito d6c579975e update preview tests 2026-02-09 18:22:41 +01:00
Mauro Romito c9cd4cb1dd 1. Updated the space selection UI 2. Paginate spaces after room creation 3. Pre-selected space creation defaults to space members access. 2026-02-09 18:22:41 +01:00
Doug 14845d5620 Automatically dismiss UserDetailsEditScreen when saving changes. (#5073) 2026-02-09 15:07:50 +00:00
Stefan Ceriu e23685be70 Show the empty room list state when filtering by a space that has no children. 2026-02-09 15:35:18 +02:00
Hugh Nimmo-Smith 2dfda98913 Treat NotFound error as expired in Sign in with QR/Link new device 2026-02-09 14:22:27 +02:00
Doug 4b4b060bff Space tweaks. (#5068) 2026-02-09 11:54:41 +00:00
Stefan Ceriu 7c96ebfca6 Fix a retain cycle in the SecureBackupController remoteBackupStateTask
Try to prevent closure crashes we've been seeing in sentry
2026-02-09 11:04:31 +02:00
renovate[bot] 9468d7f7d1 Update dependency fastlane to v2.232.0 (#5063)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-06 23:08:27 +00:00