193 Commits

Author SHA1 Message Date
Stefan Ceriu
4d34a1ed56 Bump the RustSDK to v25.03.05
- adopt the new timeline configuration which now exposes read receipts tracking. For now it should be set to `false` for all timelines except the live one, which still gets configured properly on the rust side through `init_timeline`. Eventually we will converge on this configuration API for all of them.
- also adopt the new rust side cache clearing method and remove our own
2025-03-05 14:24:44 +02:00
Stefan Ceriu
5e90f67a91 Bump the RustSDK to v25.2.25, address breaking changes from matrix-org/matrix-rust-sdk/pull/4674 2025-02-25 12:40:56 +02:00
Doug
d195e603c9
RoomTimeline… refactor (drop the Room). (#3728)
* Add the timeline controller factory to the timeline view model.

In preparation for building a timeline to swipe through media in QuickLook.

* Refactor RoomTimelineControllerFactory.

* Refactor RoomTimelineController.

* Refactor RoomTimelineProvider.
2025-02-03 14:14:01 +00:00
Stefan Ceriu
57b85d2650 Move tracing configuration to the rust side. 2025-01-10 19:09:52 +02:00
Stefan Ceriu
2671d90bc1
Simplify how to we handle background task expirations. (#3670) 2025-01-10 16:43:39 +02:00
manuroe
3950cac085
Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Stefan Ceriu
caaa89af62
Media gallery - part 1(#3588)
* Introduce a `MediaEventsTimelineFlowCoordinator`
* Update SDK API and architecture
* Add a feature flag, add translations
* Move the media events timeline presentation under the room flow coordinator state machine
* Rename `TimelineViewState.timelineViewState` of type `TimelineState` to `timelineState`
* Enabled SwiftLint's `trailing_closure` rule and fix the warnings.
2024-12-06 16:58:14 +02:00
Doug
4869dcfe97
Wait until the sync has stopped before marking the task as complete. (#3564) 2024-11-28 17:30:07 +00:00
Stefan Ceriu
3f4bca48b1 Delay handling inline notification replies until the user session is established 2024-11-22 09:28:38 +02:00
Stefan Ceriu
b122b02bee
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
468afd8e87
Make stopSync more aware of background usage. (#3501) 2024-11-11 10:32:58 +00:00
Stefan Ceriu
4ac527a9dc Start syncing when receiving a background VoIP call for the cases in which the app was suspended but not terminated. 2024-11-06 20:11:21 +02:00
Stefan Ceriu
10966ab620 Begin a background task when receiving a call in order to get state updates for longer. 2024-11-06 13:40:58 +02:00
Stefan Ceriu
b9d05fe7f3 Prevent the background task's expiration from stopping the main sync loop. 2024-11-06 13:40:58 +02:00
Doug
85d497a4d2
Stop the sync loop after each background app refresh. (#3481) 2024-11-04 17:21:54 +00:00
Doug
589df7d76e
Use an https callback for OIDC once again. (#3461)
* Use the new WAS callback type and return back to the https callback for OIDC.

* Simplify OIDCAuthenticationPresenter now it doesn't need to handle universal links.

* Remove old unit tests.
2024-10-29 11:28:05 +00:00
Mauro
7d373c07a3
remove iOS 16 support (#3443)
* remove iOS 16 support

* remove iOS 16 support

* test updates

* added more delay

* revert

* adding waiting time on the CI
2024-10-24 17:21:28 +02:00
Stefan Ceriu
35d49c4d85 Refactor theTimelineItemIdentifier handling; stop relying on optional EventOrTransactionIds and be explicit when setting composer modes from the draft service. 2024-10-16 16:37:47 +03:00
Stefan Ceriu
9d23dec2e9
Tracing and integration test tweaks (#3336)
* Disable image and document picker integration tests as they randomly fail to load and are flakey.

* Delete any pre-existing log files

* Various tracing tweaks and fixes:
- delete the custom tracing log levels as we can't control their ouput
- implement comparable on them
- change default levels only if the new chosen level increases their verbosity

* Make logging targets mandatory and fix their logging levels

* Switch back to using the `run_tests` reset simulator flag as `fastlane snapshot reset_simulators` was too generic and slow

* Switch all integration test taps to `tapCenter` (nee forceTap) after noticing missed taps on CI.

* Make the logging file prefix explicit, let the main app not use one.

* Rename tracing configuration `target` to `currentTarget`
2024-09-27 15:08:47 +03:00
Doug
a8dbda90d9
Configure the AuthenticationService later now that we have 2 flows on the start screen. (#3316)
* Don't query the homeserver until confirming it (or selecting a different one).

* Setup the infrastructure to test AuthenticationService.

Implement basic tests for configuration & password login.

* Use the real AuthenticationService with a mock Client in all of the tests.

* Add tests for the ServerConfirmationScreenViewModel.

* Remove redundant view state and test for it.
2024-09-25 14:40:18 +01:00
Mauro
943f33b496
Await for room sync only for push notification invites (#3307) 2024-09-19 13:42:58 +00:00
Doug
93daaf554f
Handle notifications properly when a call is happening. (#3276) 2024-09-13 16:50:29 +02:00
Stefan Ceriu
6759a66533 Fixes #3146 - Remove the account migration screen 2024-09-09 12:41:28 +03:00
Stefan Ceriu
664e87fe87
Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Doug
61df1dd18c
Remove the Element Call Picture in Picture feature flag. (#3204) 2024-08-27 11:07:19 +01:00
Stefan Ceriu
e281a3f242 Introduce a new RoomProxyType and treat rooms differently based on their membership state 2024-08-21 12:24:20 +03:00
Doug
e0ba9925e7
Remove GenericCallLinkCoordinator, merging it into CallScreen. (#3181)
* Remove incorrect message send call and fix typo.

* Add overlay coordinator presentation to the NavigationRootCoordinator.

* Remove GenericCallLinkCoordinator, merging it into CallScreen.

This will allow for picture in picture on call links when available.
2024-08-19 17:21:25 +01:00
Mauro
ed7d3b0b13
Navigate to the Pinned events timeline (#3139) 2024-08-08 18:29:39 +02:00
Stefan Ceriu
d31e128aa7 Fixes #3050 - Sync mute state between ElementCall and CallKit 2024-08-06 14:31:27 +03:00
Doug
8ff53da4d2
Fix a crash experienced when trying to report a crash. (#3086) 2024-07-25 14:56:45 +00:00
Doug
cdd763efd4
Add a certificate validator hook. (#3069)
* Add a certificate validator hook.

* General tidy up of AppHooks.

* Don't worry about the generic call links.
2024-07-19 17:05:54 +01:00
Doug
2fb7f65957
Add a feature flag for Simplified Sliding Sync. (#3057)
* Disable SSS when logging out.

* Bump the SDK.
2024-07-18 10:16:51 +01:00
Doug
288d2c2fdc
Add a ClientBuilder hook. (#3056) 2024-07-18 09:47:37 +01:00
Stefan Ceriu
65dd6f3496 Simplify how we setup Sentry to make sure it's configured before any spans get created - they don't get reported otherwise 2024-07-18 08:58:20 +03:00
Stefan Ceriu
239afeb662 Fixes #3042 - Cancel ElementCall ringing as soon as the call ends 2024-07-17 10:24:30 +03:00
Stefan Ceriu
d16ba9f3ef Hook up CallKit lock screen muting controls to the ElementCall widget 2024-07-17 10:24:30 +03:00
Doug
78b0c7068d
Add a bug report hook. (#2988) 2024-07-01 13:53:24 +01:00
Stefan Ceriu
3c500887ab
Setup Sentry instrumentation on top of the existing Signposter (#2985)
* Move Sentry setup outside of the BugReportService

* Setup Sentry SwiftUI tracing for the homeScreen and roomScreen roots

* Setup Sentry instrumentation on top of the existing Signposter

* Various tweaks
2024-06-28 18:15:57 +03:00
Doug
3cc4145a4c
Use XcodeGen files for app variants and setup Enterprise submodule. (#2976)
- Create an app.yml with the base app variant.
- Override app.yml contents on Nightly/PR builds.
- Add AppHooks mechanism.
- Add Enterprise submodule.
- Conditionally import Enterprise/fastlane/Fastfile if available.
2024-06-27 18:18:17 +01:00
Stefan Ceriu
41d40d8de0
Cleanup how we setup the CallKit provider and have it be used for outgoing calls as well (#2967)
- tear down ElementCall screens when ending the call from the CXCallController
- make the call UI available in the task manager and lock screen
- Fix broken hang up widget message format
2024-06-27 14:07:44 +03:00
Mauro
fa22b98b3f
Improve UX when answering EL-Call through the notification (#2965) 2024-06-24 16:51:43 +00:00
Doug
3465ea4cc1
Use a Client in AuthenticationService now that the Rust one has been removed. (#2954)
* Replace Rust's Authentication service by building a Client.

* Drop the Proxy from AuthenticationServiceProxy[Protocol].

* Make sure to call abortOIDCLogin.

* Centralise common ClientBuilder code.

* Update the SDK.
2024-06-24 15:05:00 +01:00
Stefan Ceriu
341b6df70a Avoid races between enabling the send queue and receiving back a status update, stop dropping duplicates both here and on reachability status printing. 2024-06-21 13:29:11 +03:00
Stefan Ceriu
a2faae20c2 Allow showing the developer options on any build type by tapping the settings screen version footer 7 times (a la android) 2024-06-12 13:07:00 +03:00
Stefan Ceriu
9e195882fc Bump the RustSDK to v1.0.11 2024-06-11 18:46:43 +03:00
Stefan Ceriu
6c1647b851 Fixes #2842, fixes #2841 - Adopt new message sending queue API
- automatically retry failed requests as soon as the network is availble again
- remove manual retry options
2024-06-06 12:59:03 +03:00
Stefan Ceriu
ea08fad530 Remove manually set envars as they're handled rust side now 2024-05-31 13:32:47 +03:00
Stefan Ceriu
a4c9135b58 Decouple the bug report service from the analytics one 2024-05-30 15:42:26 +03:00
Mauro
4e23f7be22
QR Code Login Flow (#2767)
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
2024-05-29 17:07:17 +02:00
Stefan Ceriu
e93e75778a Removed forwarded properties from the UserSessionProtocol as the ClientProxy is already fully exposed 2024-05-27 17:05:01 +03:00