Commit Graph

4755 Commits

Author SHA1 Message Date
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
Mauro Romito e498271420 Revert "size fitting preview tests for the media events timeline"
This reverts commit 666eee86fa0f5da845268bfebcf0173162649de8.
2026-07-31 15:14:39 +02:00
Mauro Romito dbb14e0df4 size fitting preview tests for the media events timeline 2026-07-31 15:14:39 +02:00
Mauro Romito e32c534b89 pr suggestions 2026-07-31 15:14:39 +02:00
Mauro Romito b044764310 unified the filtering of the gallery items 2026-07-31 15:14:39 +02:00
Mauro Romito 68a277143a use the appropriate timeline kind (to be refactored) 2026-07-31 15:14:39 +02:00
renovate[bot] d8cb49e892 Update Project Dependencies (#5940) 2026-07-31 11:10:22 +01:00
Mauro Romito 5d47bb3c56 set gallery limit to 60 when the gallery ff is on 2026-07-31 10:28:43 +02:00
Stefan Ceriu 6d77a0a557 Fix typo in contributing.md 2026-07-31 10:26:57 +03:00
Daniel Anderson 06753c7748 Fix rageshake upload progress bar
The Swift 6 migration consumed the KVO progress publisher through its AsyncSequence, which wants one value at a time. Progress updates that arrive while the loop is busy are dropped, the buffer holds onto the latest one until the loop is ready for it.

Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com>
2026-07-31 09:26:55 +03:00
renovate[bot] 894b8edc2c Update zizmorcore/zizmor-action action to v0.6.1 2026-07-31 09:24:59 +03:00
Doug 743c22d980 Update the Enterprise submodule. (#5953)
Add a new ClientProxyError case and make our ClientProtocol extension nonisolated.
2026-07-30 15:08:40 +01:00
Mauro ae795df530 Allow previews in the timeline to include filtered galleries (#5943)
* remove the usage of the timeline kind override in favour of getting it properly from the timeline view model

* allow the previews to include gallery items filtered by the allowed types when started outside the gallery

sss

asa

* fix for actions not being forwarded to the timeline right

* pr suggestions
2026-07-30 13:49:22 +02:00
Doug 33f8ce2759 Fix a couple of missing UserStatus values. (#5944)
* Fix the missing UserStatus in RoomMemberProxy.

* Use the hero's status for a room's AvatarHeaderView.
2026-07-30 10:33:11 +01:00
Mauro 704b3dbb29 Render replies to gallery items (#5942) 2026-07-29 16:28:46 +02:00
Mauro Romito 58fb7c4fcb Wait on durable state in three flaky test suites
These three suites assert against state that is still being loaded or has
already moved on, so they fail whenever a busy runner stretches the window.
All three passed on CI only because `-retry-tests-on-failure` re-ran them.

- MediaUploadPreviewScreenViewModelTests: the processing failure tests treated
  a one second `deferFailure` window as if it also meant the send had finished.
  Preprocessing the valid files outlasts it, so wait for the interaction to be
  re-enabled instead.
- SecurityAndPrivacyScreenViewModelTests: the screen loads its parent spaces and
  its room directory visibility in two independent tasks, and `isSaveDisabled`
  needs both. Every wait now gates on the visibility having landed too.
- RoomNotificationSettingsScreenViewModelTests: the delete tests waited on a
  transient `deletingCustomSetting` flag that the observation coalesces away
  under load. They now wait on the dismiss action and the alert.
2026-07-29 11:53:17 +02:00