Commit Graph

374 Commits

Author SHA1 Message Date
Stefan Ceriu
d7535d4618 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
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
Doug
6deaa26e8e Hide the unread dot after previewing an invite. (#3800)
* Hide the unread dot when previewing an invite.

* Remove an invited room ID when accepting/rejecting.

* Remove the unread badge from knocked room cells.

* Update snapshots.

* Address PR comments.

Refactor KnockRequestType to JoinRequestType.
2025-02-18 12:22:13 +00:00
Doug
74511e0570 Update the SDK.
Handles changes that removed support for the sliding sync proxy.
2025-02-18 11:55:20 +00:00
Stefan Ceriu
6f05a08694 Fix some concurrency warnings, update missed licence headers. (#3741)
* Switch the TimelineController to an async sequence and fix the warnings on the UserIndicatorController
2025-02-06 11:35:23 +02:00
Doug
4312a604c1 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
7a4534680f Move tracing configuration to the rust side. 2025-01-10 19:09:52 +02:00
Stefan Ceriu
d5542c2526 Simplify how to we handle background task expirations. (#3670) 2025-01-10 16:43:39 +02:00
manuroe
c29f4cc9b4 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
Doug
6472c94eb3 Enable the media browser feature 🖼️ (#3642)
* Overlay a progress indicator for downloads instead of using a toast indicator.

* Update the SDK.

* Remove the feature flag for the media browser.

* Remove the media captions feature flag too.

* Add unit test cases for download failure and swiping between items.

* Snapshots (with the media browser visible in the screen).
2024-12-19 14:15:31 +00:00
Stefan Ceriu
49382cd39b Implement frequency tracking for frequently used emojis 2024-12-16 19:21:28 +02:00
Stefan Ceriu
3079afe7a8 Fix #3620 - Fix frequently used emojis, stop relying on Apple's keyboard values and store everything app side instead. 2024-12-16 19:21:28 +02:00
Stefan Ceriu
a297643443 Bump the RustSDK to v1.0.79; add a feature flag for the new rust side ClientBuilder::useEventCachePersistentStorage 2024-12-10 18:19:31 +02:00
Stefan Ceriu
e75c930d8f 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
a6a8f53b30 Add a warning to the media caption composer. (#3574)
We can now remove the feature flag.
2024-11-29 16:23:20 +00:00
Doug
9da03c03cf Wait until the sync has stopped before marking the task as complete. (#3564) 2024-11-28 17:30:07 +00:00
Doug
9f0b65b7cf Move the media caption composer (and Add Caption action) behind a feature flag for now. (#3560) 2024-11-27 08:30:10 +02:00
Stefan Ceriu
16f5836e95 Delay handling inline notification replies until the user session is established 2024-11-22 09:28:38 +02:00
Stefan Ceriu
41911b8c7e Show both defaults and frequent emojis in the timeline item menu, make the list scrollable (#3534) 2024-11-19 21:53:57 +02:00
Stefan Ceriu
e247f533fd Expose the public search feature flag in the developer settings and disable it by default. 2024-11-18 21:08:03 +02:00
Stefan Ceriu
0ceb18a533 Fixes #1918 - Revert dba696fd10fc19e28f5f1d42d6d9bcf5b3f91f89 as #617 is no longer reproducible on iOS 18. 2024-11-15 17:37:50 +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
719dcef5b9 Make stopSync more aware of background usage. (#3501) 2024-11-11 10:32:58 +00:00
Stefan Ceriu
020f40b48b 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
9b54ed81b5 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
1cf74311db Prevent the background task's expiration from stopping the main sync loop. 2024-11-06 13:40:58 +02:00
Doug
5ef8cb7246 Stop the sync loop after each background app refresh. (#3481) 2024-11-04 17:21:54 +00:00
Doug
a141adbd1f Enable the Optimised Media Uploads feature. (#3467)
* Enable the Optimised Media Uploads feature.

(Well move the toggle from Developer Options to Advanced Settings)

* Add OptimizeMediaUploads analytics.

* Final strings.

* Upload reduced quality media by default 😢

Move the setting out of the feature flags section in the file.

* Fix unit tests now the default has changed.

* Pull in updated string, fix snapshots.
2024-10-31 14:14:14 +00:00
Doug
b496fa327e 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
Andy Balaam
948575ec79 Enable identity pinning violation notifications unconditionally (#3457)
(Remove the feature flag we added when this feature seemed unstable.)
2024-10-28 12:16:38 +00:00
Stefan Ceriu
6c09884783 Fix #1934 - Hook reaction pickers into the system's recently used keyboard emojis (#3453) 2024-10-25 19:58:56 +03:00
Mauro
17ef4093d5 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
2c31885355 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
Doug
79c0822ef5 Add a toggle in the developer options to optimise the media uploads. (#3408) 2024-10-14 14:48:59 +01:00
Mauro
5648a87b7a Create Room with knock rule (#3397)
* create knock room implementation (without SDK)

* Apply suggestions from code review

pr suggestions

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

* pr suggestions

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
2024-10-14 11:52:38 +02:00
Doug
92f58377bf Fix identity pinning link. (#3395) 2024-10-10 16:46:09 +01:00
Stefan Ceriu
a79aad7c54 Introduce a feature flag for the new identity pinning violation notifications feature. 2024-10-10 16:13:34 +03:00
Stefan Ceriu
7655b33f5d Fixes element-hq/element-meta/issues/2525 - Display a warning when a user's pinned identity changes 2024-10-07 20:47:31 +03:00
Doug
74ff86695e Add developer option to hide media in the timeline. (#3366) 2024-10-03 17:59:39 +01:00
Stefan Ceriu
45d59c57d6 Bump the RustSDK to v1.0.53: adopt latest record based timeline item APIs (#3356) 2024-10-01 18:50:11 +03:00
Mauro
98d7654a1d Remove message pinning FF (#3318) 2024-09-30 12:32:35 +00:00
Stefan Ceriu
e918dc66ae 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
Valere
5516743886 crypto: rename invisible crypto flag to deviceIsolationMode (#3331) 2024-09-26 12:24:46 +01:00
Doug
94f5879639 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
faf32e8b67 Enable message pinning (#3308) 2024-09-23 09:51:50 +02:00
Mauro
d32135137f Await for room sync only for push notification invites (#3307) 2024-09-19 13:42:58 +00:00
Valere
a9fddb5dbb crypto: Add configuration flag to enable invisible crypto (#3247) 2024-09-18 16:30:45 +01:00
Doug
2a8fb365f7 Allow registration on matrix.org using a custom helper URL. (#3282) 2024-09-16 13:05:22 +01:00
Doug
8a6ac746a7 Handle notifications properly when a call is happening. (#3276) 2024-09-13 16:50:29 +02:00
Stefan Ceriu
7ee1c721b4 Fixes #3146 - Remove the account migration screen 2024-09-09 12:41:28 +03:00