* Adjust login flow to exclusively use the ServerSelectionScreen
* Move async code to server selection vm
* ServerSelection supports pro picker options
* Use homeserver address for both confirmation and picker modes
* rename ServerSelectionScreenMode
* remove ServerConfirmationScreen
It's been superseded by the ServerSelectionScreen
* rename userInput
* Update strings with latest design strings
* Add server input autocompletion
* Store previous servers in AppSettings and autofill on server signin
* Audit changes for logging
* Enforce lowercase server history storage
* Update tests
* Update Xcode project
* PR review fixups
* Add HomeserverHistoryManager
* Review fixups 2
* Review fixups 3
* Support for waitingForAuth continuation sender during Link new device
* Stop automatically regenerating new QR codes when they expire.
This reverts part of commit e235e3ba81.
* Add a timeout after the Face/TouchID verification when linking a desktop computer.
---------
Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
* feat: add call icon next to members in call
* feat: use matrix rtc room status for in-call
* chore: revert xcodeproj change
* chore: update preview tests
* chore: Update ElementX.xcscheme
* chore: undo room member status proxy
---------
Co-authored-by: Kai <nankeen@users.noreply.github.com>
* Render galleries with non-visual attachments as a list
Adds GalleryListView (with GalleryDivider) for galleries containing a file or audio item, extracting the shared FileTypeIconView from FileRoomTimelineView. GalleryRoomTimelineView picks the list vs the grid via usesListLayout. Tapping to open the preview lands in a follow-up.
Co-authored-by: svetoslav.mitov <svetoslav.mitov@sportinno.com>
* pr suggestions
---------
Co-authored-by: svetoslav.mitov <svetoslav.mitov@sportinno.com>
* feat(timeline): Add support for active call item rendering in timeline
* Update active call as per design (show raw count of members)
* fixup project files
* revert unexpected generated mocks change
* code review
* Record preview snapshots
* revert changes on project.yml
* post rebase fix
* Add a common .inverseMask view modifier and use a blend mode for efficiency.
This also fixes the snapshot rendering 🎉
* Add support for the status emoji on the app's Setting button.
* Align the room header decoration icons with the status emoji.
* Add missing snapshots.
* Show the user's own Status emoji on the SettingsScreen.
* Add the UI for setting your own status.
* Add placeholder action for selecting a custom emoji and fix some accessibility issues.
* implemented checkSourceSafetyIfNeeded in the timeline media preview
* added a subtitle to the spinner when scanning and an animated drag gesture for the error and loading states
* pr suggestions
* pr suggestions part 2
* 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
* 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
* Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26.
* Use the .avatar label style for NotificationSettingsEditScreenRoomCell.
* Fall back to the AppLock PIN code when there's no passcode.
* Add extra tests on the LinkNewDeviceFlowCoordinator.
* Misc tweaks for clarification.
* Regenerate snapshots.
* 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
* Add a developer flag for the search tab
Introduces a globalSearchEnabled user preference (off by default) with a toggle in Developer Options, used to gate the new search experience.
* Support search role tabs in the tab coordinator
Migrates the NavigationTabCoordinator to SwiftUI's value-based Tab API and adds an isSearch option so a tab can adopt the iOS 26 .search role, which detaches it into the trailing search button in the tab bar.
* Moves room search to a new screen
Adds a new screen that filters the alternate room summary provider as you type, shows an empty state, and lists matching rooms with their matrix identifier. Supports hardware keyboard selection (arrow keys to move through results, return to open) by reaching into the system search field.
* Present search in a dedicated tab
Adds the search tab to the chats flow on iOS 26 when the flag is enabled, rendered as the detached .search role button. The Cmd+K shortcut now selects this tab, and the home screen's inline search is hidden while the tab is available.
* Remove the old global search screen
The dedicated search tab replaces the Cmd+K floating window, so the GlobalSearchScreen, its window plumbing in the WindowManager, and its presentation in the chats flow are all removed.
* Add a plain list modifier to Compound.
* Move ElementTextFieldStyle into Compound and support more styles from the Figma
- More accurately reflects our Liquid Glass updates.
- Adds support for the .raised style.
* Update Element X snapshots.
* Updates to File Info Bottom Sheet
Removing buttons, changing labels, adding a title
* Update the underlying actions rather than fixing it at the screen-level.
* Fix the media details sheet height now there's a navigation title.
* Record preview snapshots
---------
Co-authored-by: Doug <douglase@element.io>
Co-authored-by: Element CI <ci@element.io>