Commit Graph

4820 Commits

Author SHA1 Message Date
Stefan Ceriu 3f6347b6c9 Drop the addressSanitizer and undefinedBehaviorSanitizer from the Accessibility and UI tests
They cost a lot of extra memory to enable and cause problems on constrained CIs
2026-08-11 11:58:18 +03:00
ElementRobot 189a04b94b Run XcodeGen (#6006) 2026-08-11 08:43:16 +01:00
Michael 6efa8743ff Combine the Server Selection screen into the Server Confirmation screen and add autocompletion when entering an account provider. (#5949)
* 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
2026-08-10 18:38:37 +01:00
Stefan Ceriu 42a7b6e8ee Annotate failures for Github Actions so they're easier to spot. 2026-08-10 20:33:43 +03:00
Stefan Ceriu b829c6a06f Prevent invalid snapshots on timeline replies by waiting for the keyboard to appear for longer 2026-08-10 14:49:09 +03:00
Stefan Ceriu 66f68093f0 Remove the createSpan method entirely
As it's easier to live without it than to deal with the API redesign or or misuse
panics.
2026-08-10 13:23:17 +03:00
Stefan Ceriu bb0713b686 Fix tracing span panic when accessed from multiple threads
Brings it in sync with the TimelineItemProvider as it happens.
2026-08-10 13:23:17 +03:00
Stefan Ceriu 0856fdc146 Improve integration test diagnostics in an attempt to catch run crashes 2026-08-10 13:19:41 +03:00
Doug 45890c71a2 Set the finalised OAuth Client URI path to match the new EXI page. (#5992) 2026-08-10 10:30:46 +01:00
ElementRobot 3f6021bcd1 Translations update (#5999)
Co-authored-by: Element CI <ci@element.io>
2026-08-10 09:50:06 +01:00
renovate[bot] 76c34e29bb Update zizmorcore/zizmor-action action to v0.6.2 2026-08-10 07:54:46 +03:00
Doug e3be2981ff Enable automatic call status under the User Status feature flag. (#5994) 2026-08-07 18:26:54 +01:00
Doug 03c434074a Show loading/failure states when setting/clearing user status. (#5993) 2026-08-07 17:24:19 +01:00
Doug aeffd942ec Update the SDK with a fix for read receipts. (#5991) 2026-08-07 13:41:48 +01:00
Danny 1a72a4e17b Allow tapping the avatar in the room member bottom sheet to view it fullscreen (#5989)
* Extract a shared helper for loading a media preview

The four screens that show a fullscreen avatar each had their own copy of the same
load-and-wrap logic. Move it to MediaPreviewItem.load, with the mime type as a
parameter defaulting to JPEG, and leave each screen's loading indicator where it is.

Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com>

* Only dismiss a QuickLook preview that is still presented

UIKit forwards dismiss() up the presentation chain when the receiver has nothing
presented, so dismissing the avatar view was dismissing the profile details sheet
also.

Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com>

* Allow tapping the avatar in the room member bottom sheet to view it fullscreen

Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com>

---------

Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com>
2026-08-07 13:11:40 +01:00
mredig bbdbbe1081 Create CallView.Coordinator in ViewModel
preserving it across view rebuilds as phone rotates
2026-08-07 12:36:07 +02:00
Mauro Romito 668fbe1827 pr suggestions 2026-08-07 12:35:57 +02:00
Matthew Hodgson 58e1a0212d Indent blank lines and address avatar crop review feedback
Indent the new method's blank lines to satisfy SwiftFormat's
indent-blank-lines rule, which failed the Tests CI jobs.

Also address review findings on the crop itself:
- Request a 256pt thumbnail box at both donation sites so cropping a
  scaled (aspect-fit) thumbnail to its minor axis keeps enough
  resolution for the share sheet's circle.
- Round the draw offsets to whole pixels so odd-sized crops blit
  instead of resampling.
- Log when fetched avatar data can't be decoded rather than silently
  swapping in the placeholder, and document the non-obvious
  format.scale pinning.
2026-08-07 12:35:57 +02:00
Matthew Hodgson 39805d080e Fix broken avatar aspect ratio in the share sheet and notifications
The media repo serves thumbnails with the scale method, so avatars keep
their source aspect ratio. The system stretches whatever INImage we
donate to fill a circle, distorting any non-square avatar in the share
sheet's conversation suggestions (and notifications, which are donated
the same image).

Centre-crop donated avatars to a square before handing them to the
system, in both the timeline's send message intent donation and the
NSE's communication context.
2026-08-07 12:35:57 +02:00
Doug a82726a991 Add timeouts after verifying the device owner when linking a new device. (#5970)
* 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>
2026-08-06 14:56:34 +01:00
Mauro Romito a0521d1fdf improve the contribution docs with preview tests setup 2026-08-06 12:26:54 +02:00
mredig 8684b2c050 review fixups 2026-08-06 12:26:54 +02:00
mredig d7283aa552 Update Contributing.md with snapshot testing instructions 2026-08-06 12:26:54 +02:00
Doug f422208399 Update the SDK and handle some API breaks. (#5986) 2026-08-06 10:54:10 +01:00
Doug d0fca495cb Add an HTTP_PROXY environment variable too (also disabled). (#5984) 2026-08-06 10:49:51 +01:00
Stefan Ceriu 0bddf30de9 Improve the room member part of the UI test user session flows 2026-08-06 11:50:21 +03:00
Mauro Romito 748ec818ac remove map tiler url from matrix wellknown 2026-08-05 16:00:43 +02:00
Doug 80530f0006 Add hooks for the RoomDetails, RoomMemberDetails and UserProfile screens. (#5980)
Also adds an @AppHook macro.
2026-08-05 12:41:18 +01:00
renovate[bot] 68f7f2b301 Update dependency pointfreeco/swift-snapshot-testing to v1.19.4 2026-08-05 08:26:21 +03:00
Element CI 5672b5cfcc Prepare next release 2026-08-04 06:17:31 -07:00
Stefan Ceriu f31207583e Tweak the stalebot configuration
So that it:
* checks PRs without needing a needs info label
* capitalize the Stale label
* groups the issues and PRs configurations separately
2026-08-04 14:44:57 +03:00
Stefan Ceriu 56b790da74 Fix various UI test snapshots 2026-08-04 14:17:07 +03:00
Stefan Ceriu b2d74abf2f Disable the store pausing feature as we encountered cases in which it doesn't work properly. 2026-08-04 13:31:52 +03:00
Stefan Ceriu ee8223f0a9 Raise the accessibility tests execution time allowance
testMediaEventsTimelineScreen timed out on CI after 2 minutes. The spindump
shows the runner parked inside XCUIApplication.terminate() with the app
process alive but completely idle, so the audits had already finished and the
teardown alone exhausted the remaining budget.

The test is also the heaviest one in the plan, 120s on CI against 88s for the
next slowest and only 19s locally, since everything runs with the address and
undefined behaviour sanitizers enabled. Doubling the allowance gives all of
them enough headroom.
2026-08-04 12:49:42 +03:00
Stefan Ceriu c4e5bde5bf Fix the missing accessibility description on the Settings button's avatar
The accessibility audit flagged the avatar node in AvatarSettingsButtonLabel
as having no description, since it carried an accessibility identifier but
never a label.

The avatar is purely decorative, both screens that use it wrap it in a button
that is already labelled with the Settings title, so it is now hidden from
accessibility and the identifier has moved up onto the buttons themselves,
where the UI and integration tests query it.
2026-08-04 12:49:42 +03:00
Stefan Ceriu 4ca7c1a8fa Manually publish room list range updates when the content isn't scrollable 2026-08-04 09:39:42 +03:00
renovate[bot] eabbeffd09 Update actions/stale action to v11 2026-08-03 20:54:31 +03:00
Doug 1e78825b0b Rename properties and sort members in advance. 2026-08-03 15:00:38 +01:00
Kai 3ab0aacabf Add call icon next to members in call (#5941)
* 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>
2026-08-03 15:00:38 +01:00
Mauro Romito 1407a1d5b4 implemented a11y for galleries 2026-08-03 14:33:12 +02:00
Mauro Romito 56d22104ad fix some bugs: 1. caption being displayed when blank 2. gallery should be tapped even when scanning fails 2026-08-03 11:32:28 +02:00
Mauro Romito d7127562d7 added the strings for the pin banner, the room list and the notification content builder 2026-08-03 11:32:28 +02:00
ElementRobot 9a1db7e664 Translations update (#5965)
Co-authored-by: Element CI <ci@element.io>
2026-08-03 09:56:19 +01:00
Doug 58938dbd4f Fix another layout loop. 2026-08-03 09:32:41 +01:00
Doug ad38d9698a Fix a layout loop. 2026-08-03 09:32:41 +01:00
Doug 7c245acaaf Add a custom TabRail on iPad instead of the top tab bar.
Warning: There's currently an observation tracking feedback loop 😕
2026-08-03 09:32:41 +01:00
Mauro Romito bbc995e2c9 Fix for pagination getting stuck when swiping preview items 2026-08-03 10:12:45 +02:00
Doug 94cd9590b5 Allow clearing your own call status. (#5959)
* Allow clearing your own call status.

* Clarify the names of the SettingsScreenUserStatusRow.Mode cases.
2026-07-31 18:15:42 +01:00
Doug f5a1a7d952 Update the Share Extension's Max Count values in xcodegen too. 2026-07-31 18:11:30 +01:00
Mauro Romito 3eb8075913 use fixed size 2026-07-31 15:14:39 +02:00