* Track active live location sessions by ID instead of timeout.
# Conflicts:
# ElementX/Sources/Services/Location/LiveLocationManager.swift
* implemented a system to promote starting session to active sesessions to send locations at the right time, and a system to remove a local session if it's handled by an external device.
* pr suggestions
---------
Co-authored-by: Doug <douglase@element.io>
* Enable key-share-on-invite irrespective of feature flag
* Remove feature-flag dep: warning on starting chat with new people
* Remove feature-flag dep: invite from room member details
* Remove feature-flag dep: warning on new users in invite screen
* Remove feature-flag dep: from room details screen
* Remove feature-flag dep: starting chat from user profile screen
* Remove feature-flag dep: timeline info on forwarded keys
* Remove feature-flag dep: RoomScreenModel
* Remove `enableKeyShareOnInvite` from AppSettings
* Remove `enableKeyShareOnInvite` feature flag
* Remove outdated comments
* Update preview test room snapshots as their header now includes the history sharing icon
* Implemented opening the LLS on our own user when tapping on the banner
* added a test for moving the map as soon as the first update arrives.
* updated preview tests
* Live Location Sharing Banner
# Conflicts:
# ElementX.xcodeproj/project.pbxproj
* updated the top banner modifier and the top banner views
# Conflicts:
# ElementX/Resources/Localizations/en-US.lproj/Localizable.strings
# ElementX/Resources/Localizations/en.lproj/Localizable.strings
* improved the stopping function from the timeline item
* stop live location sharing before starting a new one.
* added some tests for LiveLocationManager
* pr suggestions
* feat: Start voice call from DM
* rename voiceCall:bool to isVoiceCall
* review: Fix a typo
* review: use one displayCall(bool) instead of 2 actions
* review: Add a new specific preview for DM calls
* combine startCall and startVoiceCall in single enum with isVoiceCall
* review: add isVoiceCall to presentCallScreen action
* review: Use proper a11y for voice vs video
* add voice/video options to UserProfile Screen
* fixup: move config params to the roomInfo object
* review: Revert changes on preview as the toolbar cannot be snapshot'd
* review: Extract call controls in specific file
* oups: Add voice call option in room details screen
* Update room details screenshots
* Update user profile screenshots
* Update room member details screenshots
* fixup: remove dead code
* Update Send button bg color
Change the gradient bg to accent/rest.
* Tidy-up ComposerToolbar to match iOS 18 Figma.
Also simplifies the tests a bit.
* Add a .glassEffect to Compound's SendButton.
* Add a border to TimelineReplyView.
Also use the same sizes in both the message bubbles and the composer.
* Change icon size and container in message bubbles
- Container size = 36x36px
- Icon size = 24x24px
* Update icon of reply contents to be 24x24
* Update the VoiceMessageButton to match the designs.
* Adopt Liquid Glass in the ComposerToolbar.
* Generate and fix snapshots.
---------
Co-authored-by: Doug <douglase@element.io>
* 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
* Update dependency element-hq/compound-design-tokens to v6.10.0
* Further Compound updates.
The gradients have been simplified and are now opaque.
* Missed snapshots.
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Doug <douglase@element.io>
* 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
* 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
* feat: Display an icon in the room header for rooms with shared history
* fix: Apply suggestions from code review
- Simplifies `isRoomHistoryShared` expressions using type inferrence.
- Adds failure messages to unit test.
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* fix: Remove extension method in favour of field on configuration.
* fix: Distinguish between `shared` and `worldReadable` icons.
* refactor: Use `RoomHistorySharingState` enum with extension methods
---------
Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
* Revert "Do not show history visible banner when the user cannot send messages. (#4892)"
This reverts commit 6117ee3a2b.
* Revert "Add a banner to encrypted rooms with visible history. (#4851)"
This reverts commit ae38dc54d4.
* Expand the space flow UI tests to include the add rooms screen.
Also fixes some failures in these tests due to the room/space title now being a button.
* Expand the space flow UI tests to include the space members screen.
* Reset AppSettings before running preview tests.
* 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`.
* 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.
* implemented focussing a threaded event through the banner tap
* view in timeline implementation for threaded events
* added a test and improved the existing one
* pr suggestions
* put the logic for fetching the event in the view models
* 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.