Commit Graph

457 Commits

Author SHA1 Message Date
Mauro bbbb2e9dee Refactor and redesign Location Sharing Screen (#5155)
* refactored the static location screen to the location sharing screen

# Conflicts:
#	UnitTests/Sources/LocationSharingScreenViewModelTests.swift

# Conflicts:
#	ElementX.xcodeproj/project.pbxproj

* implemented a custom pin with an overlayable view

* implemented the render of the user when the location is sender instead of the pin type

* removed description and body they are not used at all.

* reimplemented single button for sharing this or user location + implemented an experimental way to update annotations

* removed unnecessary @Suite description

* implemented a way to display the alert on top of the sheet and added a spinner to the center user location button

* fixed alerts strings

* fixed a failing test

* improved preview tests
2026-03-06 12:51:16 +01:00
ElementRobot 4441cac284 Translations update (#5158) 2026-03-02 11:29:00 +00:00
ElementRobot 546a71df0c Translations update 2026-02-23 10:01:41 +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
ElementRobot acc08a3c8e Translations update 2026-02-16 10:45:27 +01: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
ElementRobot 35800ed6de Translations update 2026-02-09 19:16:15 +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 7532a792b7 Add boot detection in the NSE and use this to inform the user that there may be more notifications. (#5054)
* Add an initial implementation of the receivedWhileOfflineNotification.

* Only deliver a single receivedWhileOffline notification per boot and clarify the API.

* Add a 15-minute threshold for the receiveWhileOfflineNotification.
2026-02-06 15:18:09 +00:00
ElementRobot c18b4b4f70 Translations update 2026-02-02 10:37:21 +02:00
Mauro Romito 9999cd24b8 implemented the presentation of transfer ownership screen from the space flow and update UI and preview tests 2026-01-28 15:42:17 +01:00
Doug e06baf6f32 Update the crypto strings. (#5009) 2026-01-27 11:32:52 +00:00
ElementRobot bb801d0be1 Translations update (#5008) 2026-01-26 09:54:00 +00:00
Mauro Romito ab1ed9e671 added the create button in the empty state of the space screen and refactored some code 2026-01-23 15:18:55 +01:00
Mauro Romito d012380b01 implemented the flow to create room in a selected space 2026-01-23 15:18:55 +01:00
Mauro Romito 07243be949 implemented the space selection list and the selection logic
# Conflicts:
#	ElementX/Sources/Screens/CreateRoomScreen/View/CreateRoomScreen.swift
2026-01-22 16:40:25 +01: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 b4b9f6affa Space filters (#4977)
* Add support for SpaceFilters on the SpaceServiceProxy level and a screen that renders them

* Add aliases to a couple of space room mocks

* Update translations and related snapshots

* Add a feature flag for space filters

* Add a new room summary provider filter that takes a list of room identifiers next to the normal state filters

This will take the SpaceFilter's descendants and combine it with the normal filters to reduce the rooms shown

* Add a new space filter button to the home screen and link it to the SpaceFiltersScreen and the actual RoomSummaryProvider room list filters

* Bump the RustSDK to v26.01.20-2 for SpaceFilter support.

* Add a cancellation button to the space filters screen

* Make the filter presentation mode liquidy, move the sheet to within the home screen.

* Address PR comments
2026-01-21 20:19:39 +00:00
ElementRobot 69349d67ec Translations update (#4970)
* Translations update

* Update snapshots.

---------

Co-authored-by: Doug <douglase@element.io>
2026-01-19 19:59:26 +00:00
Doug 6a75d80081 Add the initial implementation for managing spaces. (#4963)
This isn't hooked up into the flows yet.
2026-01-16 15:29:27 +00:00
ElementRobot 3648dbd6b3 Translations update 2026-01-13 18:52:23 +01:00
Mauro 4cfedefcca Create room redesign and refactor (#4942) 2026-01-12 17:49:31 +00:00
ElementRobot f42c063e50 Translations update 2026-01-12 10:12:22 +01:00
Mauro 34123a4567 Empty spaces list screen (#4936)
* Added an FF to create spaces + empty spaces list state

* removed learn more button and improved spacing

* updated toolbar for chats and spaces to match ios 26 designs
2026-01-09 15:17:43 +01:00
ElementRobot eda56cd486 Translations update (#4894)
* Translations update

* Fix (and disable) broken test.

* Update snapshots.

---------

Co-authored-by: Doug <douglase@element.io>
2026-01-05 12:43:05 +00:00
Doug 1a62f2cca6 Final tweaks to the existing QR code screens to match the designs. (#4874)
* Simplify QR errors even more and use the correct error state for deviceAlreadySignedIn.

* Remove the pre-defined padding on TitleAndIcon and use it in the QRCodeLoginScreen too.

* Update FullscreenDialog to allow different horizontal padding in each section.
2025-12-17 17:23:55 +00:00
Stefan Ceriu 8164c88437 Update history visible settings (#4861)
* Fixes #4852 - Update history visible settings

* Address PR comments and move attributed strings to the view state
2025-12-17 15:04:02 +02:00
ElementRobot 27ca265991 Translations update 2025-12-15 09:58:47 +01:00
Doug 4ea1aaecdd Add a Link New Device screen (behind a feature flag). (#4811) 2025-12-11 11:45:23 +00:00
ElementRobot 81a43048e4 Translations update (#4830) 2025-12-09 12:01:55 +00:00
Mauro 8b08d2e05e Use generic "update details..." copy when saving details change (#4818)
* added updating space copy when saving the edit of a space

* use the generic copy instead of both a space and a room specific one
2025-12-04 16:51:46 +00:00
Mauro Romito d9d9606765 implemented the ask to join restricted rule join UI, and added tests and previews for it. 2025-12-04 16:23:34 +01:00
Mauro Romito fe6b74d59a updated edit details screen copies to reflect the usage of spaces. 2025-12-03 17:42:57 +01:00
Doug 2556eccc29 Add a specific notification body for space invites. (#4808) 2025-12-02 17:07:03 +00:00
Doug 7496f30966 Add the same unsaved changes alerts that Android has. (#4803)
* Add an alert to Discard or Save when there are unsaved changes on the RoomDetailsEditScreen.

* Add an alert to Discard or Save when there are unsaved changes on the UserDetailsEditScreen.

* Add an alert to Discard or Save when there are unsaved changes on the SecurityAndPrivacyScreen.

* Update strings.
2025-12-01 13:02:50 +00:00
ElementRobot a16f6ad3e4 Translations update (#4802) 2025-12-01 08:59:54 +00:00
Doug 62930968f8 Show the last message state in the room list. 2025-11-27 16:43:48 +00:00
Mauro Romito 997353fdec single space access implementation
also added the copies for the single and multiple spaces selection
2025-11-27 13:19:10 +01:00
ElementRobot 08514917fe Translations update 2025-11-24 16:23:24 +01:00
Mauro Romito ee9e1d1c78 esperanto deleted and regenerated some preview tests 2025-11-24 15:45:38 +01:00
Mauro Romito 26add890d6 redesigned empty state for the room members list 2025-11-24 12:18:33 +01:00
Mauro Romito cb28597eb6 room members list redesign 2025-11-21 14:23:19 +01:00
Mauro Romito 921e576ad7 corrected copies and layout for the security and privacy screen 2025-11-20 12:48:08 +01:00
ElementRobot eaa89d8d97 Translations update 2025-11-17 10:32:25 +01:00
Mauro Romito c3f31a9e23 security and privacy redesign for spaces. 2025-11-13 14:40:16 +01:00
Mauro Romito 6bda04ed04 implemented the manage space rooms permission 2025-11-13 14:05:52 +01:00
Mauro cbe0cfe129 Permissions screen redesign (#4735)
* Redesigned permissions screen

# Conflicts:
#	ElementX.xcodeproj/project.pbxproj

* updated tests

* update proj

* fix pseudo language tests
2025-11-12 14:41:44 +01:00
ElementRobot 3e922ba80e Translations update (#4721) 2025-11-10 10:47:25 +00:00
ElementRobot ee5d57606c Translations update (#4690)
* Translations update

* Update snapshots

---------

Co-authored-by: Doug <douglase@element.io>
2025-11-04 18:07:22 +00:00