Commit Graph

170 Commits

Author SHA1 Message Date
Letro Bot
aa2370afaf Version 9 (1.1.0) 2026-05-09 14:57:23 +04:00
Letro Bot
77d685cf89 Merge upstream/main into main 2026-05-09 14:51:17 +04:00
renovate[bot]
d956a9e59d Update dependency PostHog to v3.57.0 (#5532)
* Update dependency PostHog to v3.57.0

* Run XcodeGen, update Package.resolved and Settings.bundle
2026-05-04 14:10:32 +03:00
Doug
df1a407142 Remove support for handling SPA calls within the app. (#5515)
* Remove support for handling SPA call links.

They were a stop-gap solution whilst we were building support for embedded room calling.

* Simplify ElementCallConfiguration now that there is only 1 type of call to handle.

* Remove the unused overlayModule from NavigationRoomCoordinator.
2026-04-29 19:32:38 +01:00
Element CI
c0189e3bdb Run XcodeGen, update Package.resolved and Settings.bundle 2026-04-24 18:57:44 +03:00
Element CI
36744153de Run XcodeGen, update Package.resolved and Settings.bundle 2026-04-24 18:57:44 +03:00
Letro Bot
d3083e7ed5 Add the missing NSLocationAlwaysAndWhenInUseUsageDescription in target.yml since latest upstream rebase 2026-04-14 19:58:47 +04:00
Doug
252e2f75df Verify Element X with an existing Element Classic account. (#5374)
* Read and import the secrets from ClassicAppAccounts.

* Record snapshots.

* Add some documentation, tidy up tests and fix the dismissal of the backup instructions.

* Workaround flakey tests (the fulfilments weren't always firing).

* Allow a custom Classic App deep link URL to be configured.
2026-04-13 15:30:09 +01:00
Letro Bot
7a60a278de Implement login page redesign 2026-04-10 01:07:36 +04:00
Mauro Romito
41db3a1815 update plist to include background location updates 2026-04-03 12:36:45 +02:00
Stefan Ceriu
12b6b7ec74 Introduce support for multiple windows on mac and iPad OS
Once the app starts the WindowManager is configured with SwiftUI's environment OpenWindowAction. It can then be used to register coordinators (that provide the toPresentable view) and an optional flow coordinator (as most of the screens are part of a flow, especially rooms).
Once a coordinator is registed, the WindowManager invokes the OpenWindowAction which in turn makes the Application call its newly introduced WindowManagerWindowType WindowGroup's block to instantiate a new visual window rooting that view.

The WindowManager is also responsible for wrapping the presentable in a disappearance block and clean up the coordinator stack.

# Conflicts:
#	ElementX/Sources/Application/AppCoordinator.swift
2026-03-31 20:33:33 +03:00
Mauro Romito
589d0cd3fb include the always usage location description in the info.plist 2026-03-31 17:09:42 +02:00
Mauro Romito
44303bdee7 Add support for reading accounts from Element Classic. 2026-03-11 17:42:53 +00:00
Mauro
fccca17ecf waitConfirmation implementation (#5130)
* `waitConfirmation` implementation

* even better docs

* made the body not async since the context of usage did not really require it

* pr suggestions
2026-02-23 14:24:19 +01:00
Mauro
fda19a0273 Improved Defer Fulfillment (#5127)
* improved defer fullfillment

* applied also for async streams

* fix xcodeproject

* better documentation

* restict deferFulfillment  only for Publisher which can never fail
2026-02-20 17:21:35 +00:00
Skye Elliot
293f99d5bc Add history sharing badges to room details (#5043)
* chore: Add dependency `SwiftFlow` for use in avatar header badges.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>

* feat: Display history sharing pill in room details.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>

* tests: Add tests for history sharing room details pill.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>

* tests: Update screenshots for RoomDetailsScreen preview tests.

* fix: Use Localazy translations for room details badges

* fix: Address review comments

* fix: Remove line limit from room details badges

---------

Signed-off-by: Skye Elliot <actuallyori@gmail.com>
2026-02-11 12:22:39 +00:00
Doug
9b6324b295 Add boot detection in the NSE and use this to inform the user that there may be more notifications. (#5054)
* Add an initial implementation of the receivedWhileOfflineNotification.

* Only deliver a single receivedWhileOffline notification per boot and clarify the API.

* Add a 15-minute threshold for the receiveWhileOfflineNotification.
2026-02-06 15:18:09 +00:00
Doug
52d823fb03 Update dependencies. (#4940)
* Minor dependency updates.

Plus SwiftSyntax 509 → 601

* Update MapLibre to v6.

* Update Sentry to v9.
2026-01-09 16:48:03 +00:00
Doug
a78a923b0d Add a dedicated target for SDK mocks to avoid type name conflicts on the generated code. 2026-01-06 10:57:37 +00:00
Stefan Ceriu
dab166ee9f Add AsyncAlgorithms to the main app target. 2025-12-12 17:23:58 +02:00
Doug
28556da516 Remove eraseToStream now that any AsyncSequence is available to us. (#4836)
* Remove `eraseToStream` now that `any AsyncSequence` is available to us.

* Remove the now unnecessary backport of Mutex.

* Silence a couple more deprecation warnings.
2025-12-10 18:33:15 +00:00
Mauro Romito
50c07b4a40 add NSE sources to EX project to easily implement mocking and allow the code to be unit tested 2025-11-19 13:20:14 +01:00
Valere Fedronic
c75353a903 MSC4075 Use expirationTS to define the call ringing window (#4652)
* Listen to call decline to stop ringing when declined from other device

* MSC4075 Use expirationTS to define the call ringing window

* Implement ElementCallService tests.

* Update acknowledgements.
2025-11-12 12:59:09 +00:00
Stefan Ceriu
2f599283d9 Remove the DTCoreText dependency 2025-10-28 09:53:15 +00:00
Mauro Romito
bd1ef4ede0 revert 2025-10-21 14:37:15 +02:00
Mauro
6160c44d67 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00
Doug
f2663d146f Update acknowledgments with resolved names. (#4555) 2025-09-29 15:58:43 +01:00
Doug
2569b3a233 Fix flakey changelog generation and commit acknowledgements update. 2025-09-09 17:43:31 +01:00
Stefan Ceriu
bae0d02fde Add SwiftSoup to the project 2025-09-09 17:17:40 +01: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
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
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
93d483ccfa Advertise support for matrix as a URL scheme. (#4236)
Internally everything is already in place to handle Matrix URIs as we support them within the app.
2025-06-20 13:59:25 +01:00
Doug
d940fd55bb Add a placeholder association for localhost in developer mode. (#4163) 2025-06-03 09:20:00 +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
Doug
4656332b5a Update the 3rd-party acknowledgements. (#4037) 2025-04-17 11:43:54 +01:00
Mauro
5262d78747 Embed element call (#3939)
* it works but only with the baseURL for now

* works but strings are not referenced properly

and we are using a dummy config.json which maybe is not required at all?

* test with EmbeddedElementCall repo

* updated the version

* ignore our own package

* updated version

removed using EC through the well known URL

* fix for remote URL overriding

* updated version

* fix for microphone and camera using local URL

* better solution

* Use version 0.9.0-release-test.3

* fix project

* removed workaround for emebedded EC url generation

* updated EC

* pr suggestions

* fix

* removed unnecessary configuration flag

---------

Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
2025-03-25 16:14:23 +00:00
Doug
beb08bf7b8 Add NSPrivacyTracking and NSPrivacyCollectedDataTypes to PrivacyInfo.xcprivacy (#3935)
Nothing has changed, this PR simply moves the existing values from App Store Connect into the app itself.
2025-03-25 11:47:46 +00:00
Doug
fa73f1992a Project updates. (#3837)
* Don't use the AppIdentifierPrefix as it breaks when re-signing.

* Generate entitlements using XcodeGen.

* Ignore Xcode Archives.

* Remove the (unused) NCE.

* Update submodule.
2025-02-26 18:29:20 +00:00
Doug
b249f0449a Configure diagnostics (and MapLibre) using Pkl. (#3820)
* Bump the version for the next release.

* Ignore all generated sources.

* Use Pkl+XcodeGen to inject secrets instead of the project.

* Inject the PostHog/Sentry/Rageshake configuration from the environment.

* Fix bad unicode.

* Fix unit tests.
2025-02-24 18:36:08 +00:00
Stefan Ceriu
9674128cff Removed now unused secrets 2025-02-07 10:49:26 +02:00
Doug
180d622353 Ignore Compound and RTE from license acknowledgements. (#3661)
These all come from element-hq so aren't third-party licenses to us.
2025-01-06 11:36:20 +00:00
Stefan Ceriu
87169d9db5 Retrofit deferFulfillment onto snapshot tests. (#3641)
* Retrofit `deferFulfillment` onto snapshot tests.

* Convert a bunch of preview tests to the new fulfillment publisher

* Convert more tests

* Remove unneeded delays from the remaining tests

* Remove snapshotting delay option.
2024-12-20 15:30:59 +02:00
Doug
f39b5ad49b Implement the save action when previewing media. (#3630)
* Implement the save action on the media preview.

* Update Compound and use the correct icon.

Also fixes an icon that has been renamed.

* Update the add to photo library usage description to match the designs.

* PR comments.
2024-12-17 16:35:51 +00:00
Doug
1ee02f4d07 Add the unit test media files as development assets. (#3569)
Move UnitTests/Resources/Media into a top-level DevelopmentAssets directory.
2024-11-28 17:30:26 +00:00
Stefan Ceriu
e7784036cc Link the MatrixRustSDK dynamically and only embed it in the main target 2024-11-20 16:11:54 +02:00
Stefan Ceriu
07cf873484 Share extension (#3506)
* Setup simple share extension

* Switch the app url scheme to be the full bundle identifier

* Setup a share extension that show a SwiftUI view, uses rust tracing and redirects to the hosting aplication

* Move media as json through the custom scheme into the main app and deep link into the media upload preview screen

* Fix message forwarding and global search screen room summary provider filtering.

* Tweak the message forwarding and global search screen designs.

* Add a room selection screen to use after receiving a share request from the share extension

* Fix share extension entitlements

* Share the temporary directory between the main app and the extensions; rename the caches one.

* Remove the no longer needed notification avatar flipping fix.

* Extract the placeholder avatar image generator from the NSE

* Nest `AvatarSize` within the new `Avatars` enum

* Donate an `INSendMessageIntent` to the system every time we send a message so they appear as share suggestions

* Support suggestions in the share extension itself

* Improve sharing animations and fix presentation when room already on the stack

* Clear all routes when sharing without a preselected room.

* Fix broken unit tests

* Various initial tweaks following code review.

* Correctly clean up and dismiss the share extension for all paths.

* Move the share extension path to a constants enum

* Rename UserSessionFlowCoordinator specific share extension states and events

* Add UserSession and Room flow coordinator share route tests

* Tweak the share extension logic.
2024-11-13 14:02:47 +02:00
Doug
011343a1ea Update the secondary button stroke colour. (#3393)
* Update Compound which changes the secondary button stroke colour.

* Remove old UI test snapshots and update Acknowledgements.
2024-10-10 12:46:42 +01:00
Mauro
a32ad29407 use element-hq RTE version (#3360) 2024-10-02 14:30:07 +00:00