1983 Commits

Author SHA1 Message Date
Mauro Romito 4a24db7758 check permissions and if a space before calling sec and privacy APIs 2026-01-08 10:13:29 +01:00
Doug f765f6e755 Fix icon alignment on placeholder message items. (#4930) 2026-01-07 17:43:34 +00:00
Doug 0a749555a4 Update the font style for placeholder messages (redacted/encrypted/unsupported). (#4927) 2026-01-07 14:23:47 +00:00
Doug cb8604f0e3 Fix compile error. 2026-01-07 12:37:10 +00:00
Doug c1bb838517 Add support for linking new devices in the QRCodeLoginScreen. (#4891)
* Adds the remaining parts for showing/scanning a QR code to link a new device.

* Refactor the QRCodeLoginService to work the same way as the LinkNewDeviceService.
2026-01-07 12:18:39 +00:00
Mauro Romito 9269f3057b fix for unbanning requiring both kick and ban permissions 2026-01-07 10:55:17 +01:00
renovate[bot] 1d23ea98fd Update dependency element-hq/compound-design-tokens to v6.5.0 (#4920)
* Update dependency element-hq/compound-design-tokens to v6.5.0

* Update Package.resolved files.

* Use the new translate icon.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Doug <douglase@element.io>
2026-01-06 21:48:42 +00:00
Doug dc29b5bc7e Add a Log Files entry to the Usage sizes. (#4921) 2026-01-06 21:39:39 +00:00
Skye Elliot 2e09914cb7 Do not show history visible banner when the user cannot send messages. (#4892) 2026-01-06 16:36:19 +00:00
Doug a53b9137ef Add a dedicated target for SDK mocks to avoid type name conflicts on the generated code. 2026-01-06 10:57:37 +00:00
Doug 44f88adfb0 Refactor SpaceServiceProxy.joinedSpaces to topLevelSpaces. 2026-01-06 10:57:37 +00:00
Doug 2071a18102 Keep the natural size of the Translate action's SF symbol. 2026-01-05 14:37:06 +00:00
Lukas ec97996a7c Add "Translate" to TimelineItemMenuActions (#4846)
* Add "Translate" to TimelineItemMenuActions

* Update TimelineView.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* Update strings using `download-strings`

* Update ElementX/Sources/Screens/Timeline/View/ItemMenu/TimelineItemMenuAction.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

* Clear `textToBeTranslated` after translation was dismissed

* `swift run tools download-strings --all-languages`

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
# Conflicts:
#	ElementX/Resources/Localizations/et.lproj/Localizable.strings
#	ElementX/Resources/Localizations/fr.lproj/Localizable.strings
#	ElementX/Resources/Localizations/hr.lproj/Localizable.strings
2026-01-05 14:37:06 +00:00
Skye Elliot 6153480d90 Add a banner to encrypted rooms with visible history. (#4851)
* Add a banner to encrypted rooms with visible history. (#4738)

* feat: Add history visible alert.

- Adds a dismissable alert that is displayed whenever the user
  opens a room with `history_visibility` != `joined`. When cleared,
  this is recorded in the app's data store.
- When opening a room with `history_visibility` = `joined`, this
  flag is cleared.

Issue: element-hq/element-meta#2875

* tests: Add unit tests for history sharing in `RoomScreenFooterView`.

* feat: Rename flag to `hasSeenHistoryVisibleBannerRooms`, document.

* refactor: Merge enum variants, use function for banner description.

* feat: Use `AppSettings.historyVisibleDetailsURL` over hard-coded value.

* tests: Correct potential race condition with deferred assertion.

* chore: Use Localazy translation string over project-defined.

* fix: Final tweaks and review comments.

* chore: Checkout `Enterprise` submodule.

* tests: Final fixes.

* fix: Condition banner visibility on feature flag state.

* fix: Prioritise identity violations over history visibility banner.

* tests: Add snapshots for history visible banner.

* tests: Use deferred failure timeout for improved test power.

* chore: Tweaks to spelling, simplify state logic.

* fix: Remove "g".

* fix: Show banner for shared/world-readable rooms, not invited.

* refactor: Use `else-if` instead of `if`.
2025-12-19 15:26:45 +00:00
Mauro Romito 88cd816392 implemented a way to filter out roles that can't be assigned to permission, and disable permissions that are above the current power level of the user. 2025-12-19 11:34:21 +01:00
Mauro Romito f2fc164e2b tapping on the space title will open the settings (if permissions are available) 2025-12-19 11:20:06 +01:00
Stefan Ceriu 53a20f2a89 Display the store sizes under the developer options menu 2025-12-19 11:12:36 +02:00
Mauro Romito 57cd5dd794 fix for leaving a space with no joined rooms showing the incorrect subtitle 2025-12-18 13:21:01 +01:00
Mauro Romito b1abb729aa better check if an user can edit addresses 2025-12-18 11:54:23 +01:00
Mauro Romito 45d09b5be5 use the right check to show sec n privacy section in space settings 2025-12-18 11:54:23 +01: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
Mauro Romito 117185de87 unbanning is now dependant on the kick permission, and removed the change settings permission option in spaces. 2025-12-17 18:19:50 +01: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
Doug 8c74743e78 Add a missing import. 2025-12-16 16:22:21 +00:00
Doug 85ebf4d1ce Move BigIcon into Compound and add a new TitleAndIcon component. (#4866)
* Move BigIcon into Compound.

* Replace the old server selection image asset with the \.host icon.

* Add a new TitleAndIcon component to Compound.

* Add the ability to override TitleAndIcon's padding.
2025-12-16 16:01:26 +00:00
Doug 841cdc291a General tidy-up related to QR codes. (#4865)
* Tidy-up Rust to Swift mapping.

* Refactor out a dedicated QRCodeErrorView.

* Use the new QRCodeErrorView for most error state snapshots.

* Simplify QRCodeErrorView structure.

Also updates the background to match the designs.

* Fix a small compile error in the unit tests.
2025-12-16 15:59:59 +00:00
Doug 93dfc84a57 Add a service and flow coordinator for the LinkNewDevice feature. (#4859)
* Add a LinkNewDeviceService that exposes the SDK's grant QR code login methods.

* Add a flow coordinator for linking a new device.

Changes the presentation too.
2025-12-15 14:44:26 +00:00
Stefan Ceriu b71e667e73 Fix #4837 - Make sure changing the screen mode in the bindings also updates the activeTimelineContext
The original viewState mapping just stopped working properly for some reason. Updating it to `observe()` on `StateStoreViewModelV2` worked properly but I liked the viewAction based solution better, felt more streamlined.
2025-12-12 17:23:58 +02:00
Stefan Ceriu 0e33480928 Switch the MediaEventsTimelineScreen to second iteration of the StateStoreViewModel 2025-12-12 17:23:58 +02:00
Doug 2eb02cdbaf Revert "Add a banner to encrypted rooms with visible history. (#4738)" (#4850)
This reverts commit aa525a52b1.
2025-12-12 11:44:13 +00:00
Mauro Romito 55e88245f5 handle the case where a non parent joined space is already available in the existing restricted join rule 2025-12-12 12:13:58 +01:00
Skye Elliot aa525a52b1 Add a banner to encrypted rooms with visible history. (#4738)
* feat: Add history visible alert.

- Adds a dismissable alert that is displayed whenever the user
  opens a room with `history_visibility` != `joined`. When cleared,
  this is recorded in the app's data store.
- When opening a room with `history_visibility` = `joined`, this
  flag is cleared.

Issue: element-hq/element-meta#2875

* tests: Add unit tests for history sharing in `RoomScreenFooterView`.

* feat: Rename flag to `hasSeenHistoryVisibleBannerRooms`, document.

* refactor: Merge enum variants, use function for banner description.

* feat: Use `AppSettings.historyVisibleDetailsURL` over hard-coded value.

* tests: Correct potential race condition with deferred assertion.

* chore: Use Localazy translation string over project-defined.

* fix: Final tweaks and review comments.

* chore: Checkout `Enterprise` submodule.

* tests: Final fixes.
2025-12-11 17:07:57 +00:00
Stefan Ceriu cdc77a0cd1 Tweakity tweak tweaks 2025-12-11 15:42:17 +02:00
Stefan Ceriu 8518e67426 Move the room list sending state icons to the front of the latest event. 2025-12-11 15:42:17 +02:00
Doug 4ea1aaecdd Add a Link New Device screen (behind a feature flag). (#4811) 2025-12-11 11:45:23 +00:00
Stefan Ceriu 9ffb9a22e3 Attempt to make the EncryptionSettings UI tests more resilient
The secure backup disabling sheet doesn't show up in the snapshots. No idea what the actual problem is though, completely unreproducible locally.
2025-12-11 11:56:26 +02:00
Doug d130dffaf3 Remove eraseToStream now that any AsyncSequence is available to us. (#4836)
* Remove `eraseToStream` now that `any AsyncSequence` is available to us.

* Remove the now unnecessary backport of Mutex.

* Silence a couple more deprecation warnings.
2025-12-10 18:33:15 +00:00
Mauro Romito 13f04d76f7 the sec and privacy screen is only displayed if at least one available action can be displayed. 2025-12-10 17:22:29 +01:00
Mauro Romito 81ac54d23a pr suggestions 2025-12-04 16:23:34 +01: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
Mauro Romito d23846ef65 two more edge cases tests 2025-12-02 18:17:16 +01:00
Mauro Romito cf673173a8 pr suggestions and updated tests 2025-12-02 18:17:16 +01:00
Mauro Romito d77700b72a implemented a way to update the desired setting after pressing done, and added tests 2025-12-02 18:17:16 +01:00
Mauro Romito 0782faeadd implemented the UI to manage authorized spaces 2025-12-02 18:17:16 +01:00
Mauro Romito 0dcf1ffda2 implemented the navigation to the manage auth spaces screen
# Conflicts:
#	ElementX/Sources/FlowCoordinators/RoomFlowCoordinator.swift
#	ElementX/Sources/FlowCoordinators/SpaceSettingsFlowCoordinator.swift
#	ElementX/Sources/Screens/SecurityAndPrivacyScreen/SecurityAndPrivacyScreenCoordinator.swift
#	ElementX/Sources/Screens/SecurityAndPrivacyScreen/SecurityAndPrivacyScreenModels.swift
2025-12-02 18:17:16 +01:00
Doug 3b42a784c8 Add accessibility hints for the send state in the room list. (#4804) 2025-12-01 13:28:48 +00:00
Mauro Romito 656648fc7c drop iOS 17 and removed all #available and #unavaible checks for 17 and 18 2025-12-01 14:19:52 +01: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
Doug 62930968f8 Show the last message state in the room list. 2025-11-27 16:43:48 +00:00