Commit Graph

661 Commits

Author SHA1 Message Date
Doug
fead5ff191 Initial setup for the SpaceListScreen. (#4380) 2025-08-05 11:06:26 +01:00
Doug
44de05e185 Add support for Space avatars. (#4362) 2025-07-29 12:20:13 +01:00
Doug
05fc508632 Use the maxUploadSize in the media upload screen. (#4359)
* Fix a bug where some files sizes were sent as 0.

* Make FileManger.sizeForItem(at:) a UInt.

The docs specifically say that FileAttributeKey.size returns an unsigned long long so I have no idea why we were returning a Double here…

* Add the maxMediaUploadSize property on ClientProxy.

* Use the maxUploadSize to set a target video size and to show a file too big error.

* Refactor media upload parameter order.
2025-07-29 12:18:53 +01:00
Stefan Ceriu
be6716b30a Update message composer design for unencrypted rooms (#4361)
* Update message composer design for unencrypted rooms.
* Move the encryption banner to the composer toolbar.
2025-07-28 19:21:13 +03:00
Stefan Ceriu
ed6610f5d4 Fix Cannot explicitly specialize instance method 'deferFulfillment(_:timeout:message:until:) warning 2025-07-24 14:55:34 +03:00
Doug
d6ca170ed9 Update the default logs directory and allow collection from elsewhere. (#4352)
* Replace deprecated URL methods.

* Start putting log files in Library/Logs (moving existing files with a migration.)

* Make Tracing.deleteLogFiles aware of the legacy logs location.

* Allow the logs to be collected from a different directory.
2025-07-24 09:49:29 +01:00
Doug
ee9f055822 Add a TracingHook. (#4345) 2025-07-23 14:29:31 +01:00
Doug
f65b191c8a Refactor Rageshake URL and Target configuration. (#4337)
* Move the rageshakeURL configuration from the BugReportService to AppSettings.

* Refactor Target to return a handle when configuring.

This helps with reconfiguration and removes the @MainActor constraint.
2025-07-22 10:19:26 +01:00
Mauro Romito
2a24b11c15 hit region issues were caused by dynamic type checks not working properly, so they have been removed 2025-07-21 20:11:18 +02:00
Mauro Romito
aa84d280bb tombstoned room a11y label 2025-07-21 20:11:18 +02:00
Mauro Romito
e29b13fe08 read receipt cell should be grouped and the avatar accessibility hidden 2025-07-21 20:11:18 +02:00
Mauro Romito
82e313044e fixes 2025-07-21 20:11:18 +02:00
Mauro
a18eff9201 Accessibiliy Tests part 2 (#4325)
* running all the tests

* setting up CI

* fixed the workflow

* workflow on pull request, just to make it appear

* removed the test to run var

* fix archived tests name

* improved the tests, by filtering out some noise

* pr suggestions and added an improvement to the filtering

* improved the interrupt handler

* improved the UI interruption monitor handler

* some more refinement to handle the interruptor + false positive for non human readable labels

* reverted wrong commit

* ready for review, removed the on pull request check

* pr suggestions
2025-07-18 10:33:45 +02:00
Doug
913e286f09 Fix the flakey preview tests. (#4329)
* Try fix the flakey preview tests with a low priority task…

* Try RunLoop.current.perform

* Revert #4321: Use a dispatch queue again. Also fixes the concurrency warning with a Mutex.

The Mutex package is only required for iOS 17, we can remove it when we set the minimum deployment target to iOS 18.
2025-07-17 12:45:33 +01:00
Doug
07093c2b1a Use a Task instead of a DispatchQueue to fix the flakey observation tests. (#4321)
When debugging in, sometimes the value hadn't been set after dispatching, whereas it has with a Task. Not sure I fully understand why and it's annoying that there aren't any observation APIs for didSet.
2025-07-15 17:58:38 +01:00
Mauro
84e095f726 Automatic Accessibility Audits on previews part 1 (#4322)
* setup target

* accessibility tests implementation

* removed ipad check

* pr improvements

* updated project
2025-07-15 14:40:16 +02:00
Doug
0a008601e3 Update Compound and add some new snapshot tests. (#4311)
* Update Compound.

* Add some snapshot tests for PillView on a bubble background.

Version 5.0.0 of compound-design-tokens changed the pill colour but all our snapshots are on white so we didn't notice the difference in contrast. This doesn't fix anything, it purely adds the snapshots.
2025-07-09 11:24:14 +01:00
Mauro
89275b2a6c Aadded sender name when voiceover focuses a poll title (#4306)
* added sender name in poll voiceover

* improved the code

* code improvement
2025-07-08 16:37:27 +02:00
Doug
3862929356 Update and enable the new bloom style on the home screen. (#4291)
* Update Compound

* Adopt the new accent colour (and gradient) tokens.
2025-07-07 11:23:03 +01:00
Stefan Ceriu
4d616c550c Add support for the new client wide threads feature flag
- enable it everywhere as it's safer than dealing with different configurations
2025-07-04 16:04:46 +03:00
Doug
952212ec9c Handle the new trace log pack. 2025-07-02 17:51:52 +03:00
Doug
84ff9ee2e2 Adopt StateStoreViewModelV2 in more screens. (#4275)
* Use StateStoreViewModelV2 in AnalyticsPromptScreen.

* Use StateStoreViewModelV2 in UserProfileScreen.

* Use StateStoreViewModelV2 in MediaUploadPreviewScreen.

* Use StateStoreViewModelV2 in the Roles & Permissions screens.

* Add the asyncStream variant of deferFailure.

* Use StateStoreViewModelV2 in BlockedUsersScreen.

* Use StateStoreViewModelV2 in ManageRoomMemberSheet.

* Use StateStoreViewModelV2 in ResolveVerifiedUserSendFailureScreen.

* Use StateStoreViewModelV2 in ReportContentScreen.

* Use StateStoreViewModelV2 in ReportRoomScreen.

* Use StateStoreViewModelV2 in StaticLocationScreen.

* Use StateStoreViewModelV2 in EmojiPickerScreen.

* Use StateStoreViewModelV2 in PollFormScreen.

* Use StateStoreViewModelV2 in DeclineAndBlockScreen.

* Use StateStoreViewModelV2 in RoomDetailsScreen.

* Fix a random compilation error that just popped up 🤷‍♂️

* Fix expectation message.
2025-07-02 15:13:42 +01:00
Doug
5d8875c12c Replace the Report a Problem button with the app's version on the start screen. (#4262)
Tapping it 7-times will secretly reveal the bug report screen 🤫
2025-06-27 10:09:35 +01:00
Mauro Romito
6272576929 add view avatar a11y label 2025-06-26 12:35:43 +02:00
Doug
71fca18a7c Fix media previews in private room notifications and pagination on upgraded rooms. 2025-06-24 20:12:20 +03:00
Stefan Ceriu
c56940e5a8 Move all Introspect VersionPredicates into Compound to have them all in the same place. 2025-06-19 15:06:16 +03:00
Stefan Ceriu
a8dcd78e4f Fix MediaTimeline screen header iOS 26 crash, update remaining version predicates. 2025-06-19 14:29:49 +03:00
Stefan Ceriu
6b090d59a4 Fixes #4204, #4180 - Fix OS 26 crashes when not running a development build. 2025-06-18 11:54:00 +03:00
Stefan Ceriu
f3e89bd1a7 Fixes #4180 - Prevent room header autolayout crashes on iOS 26. 2025-06-12 11:23:04 +03:00
Richard van der Hoff
24ce5c03de Add a developer option for history sharing on invite
Adds a new developer flag, enabling our experimental support for MSC4268.
2025-06-11 11:24:29 +03:00
Stefan Ceriu
b2b38e0f80 Tweak the thread summary design 2025-06-10 15:09:20 +03:00
Stefan Ceriu
822f347dc2 Move composer specific designs to the composer toolbar. 2025-06-10 08:57:08 +03:00
Stefan Ceriu
f047e51ab8 Extract the disabled composer view into its own struct 2025-06-10 08:57:08 +03:00
Stefan Ceriu
805db73e56 Extract the timeline scroll to bottom button into its own view. 2025-06-10 08:57:08 +03:00
Stefan Ceriu
ce277bfd7e Threaded timeline composer 2025-06-10 08:57:08 +03:00
Mauro Romito
186501a848 added a TombstonedAvatarImage view to be used for the .tombstoned case 2025-06-06 10:49:29 +02:00
Mauro Romito
975d3c995a pr suggestions 2025-06-06 10:49:29 +02:00
Mauro Romito
d05108796f tombstoned and upgraded rooms implementation
added tests

tombstoned room avatar
2025-06-06 10:49:29 +02:00
Hugh Nimmo-Smith
60c898f78c Support for experimental MSC4286 to not render external payment details (#4099)
Ref: https://github.com/matrix-org/matrix-spec-proposals/pull/4286
2025-06-03 12:22:14 +01:00
Doug
b4174aed22 Adopt StateStoreViewModelV2 in the remaining settings screens. (#4158)
* Move the AuthenticationStartScreen into the Authentication directory.

* Commit the updated Sentry license.

No idea why they dropped the 2024 🤷‍♂️

* Use StateStoreViewModelV2 in BugReportScreen.

* Use StateStoreViewModelV2 in UserDetailsEditScreen.

* Use StateStoreViewModelV2 in NotificationSettingsScreen.

* Use StateStoreViewModelV2 in NotificationSettingsEditScreen.

* Use StateStoreViewModelV2 in LegalInformationScreen.

* Use StateStoreViewModelV2 in LogViewerScreen.

* Use StateStoreViewModelV2 in AnalyticsSettingsScreen.

* Rename AdvancedSettingsScreen directory.

* Use StateStoreViewModelV2 in EncryptionResetScreen.

* Use StateStoreViewModelV2 in EncryptionResetPasswordScreen.

* Use StateStoreViewModelV2 in SecureBackup…Screens.

* Use StateStoreViewModelV2 in LoginScreen.

Seems this one was ignored waiting on the fulfillment transitionValues implementation.

* Use StateStoreViewModelV2 in DeactivateAccountScreen.

* Move DeactivateAccountScreen into the Settings directory.
2025-05-30 12:24:56 +01:00
Mauro
c1dfce4935 Handle media previews and invite avatars through the account data (#4142)
* added account data media display policy handling to NSE

* pr suggestions

* update compound

* code improvement
2025-05-28 19:51:34 +02:00
Stefan Ceriu
3dd98adeeb Setup the new RustSDK sentry integration 2025-05-27 18:21:11 +03:00
Stefan Ceriu
e590035fea Bump the RustSDK to v25.05.26 and handle breaking changes
- the new sentry integration will be handled in #4145
2025-05-26 13:22:57 +03:00
Stefan Ceriu
b9ad6ed557 Rename the TimelineProvider to TimelineItemProvider 2025-05-23 16:08:18 +03:00
Doug
bea64831cf Show an account provider picker on the server confirmation screen when required. (#4137)
* Add a picker mode to the ServerConfirmationScreen.

* Hook up the account provider picker in authentication the flow.

Simplify the authentication flow coordinator, removing the restricted state.

* UI/Snapshot tests.
2025-05-20 17:21:08 +01:00
Mauro Romito
15cf86b889 integration tests: support for the bottom sheet 2025-05-20 17:39:12 +02:00
Mauro
0154e10f98 Always open manage member sheet (#4110)
* always open manage member sheet

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

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

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/ManageRoomMemberSheetModels.swift

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

* pr suggestions and handled the buttons actions correctly

* Update ElementX/Sources/Screens/ManageRoomMemberSheet/View/ManageRoomMemberSheetView.swift

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

* fixed some compilation errors

* added some documentation

* using a struct instead of a protocol

* using arguments instead of a struct

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2025-05-19 14:17:57 +00:00
Doug
2ea9302095 Update the SDK. 2025-05-16 09:58:05 +03:00
Stefan Ceriu
4c7791ab24 Fix various small errors when running in the Swift 6 language mode (#4109)
* Fix various small errors when running in the Swift 6 language mode

* Make the `TargetConfiguration` run on the main actor.

* Fixed a comment

* Add a comment as to why we can't make the whole NSE a main actor.

* Fix the unit tests

* Fix `blankLinesAtStartOfScope` swiftformat error.
2025-05-13 11:43:47 +03:00
Doug
cb5c7337d2 Add support for Account Provisioning links. (#4108)
* Add support for account provisioning links and route them to the authentication flow.

* Use the provisioning parameters to configure the authentication flow.

* Add UI tests for the provisioned authentication flow.

* Record new preview snapshots.

* Add unit tests.

* Make the domain configurable in the app settings.

* Use the loginHint in the login screen too.
2025-05-12 13:28:34 +01:00