Commit Graph

514 Commits

Author SHA1 Message Date
Doug
09a6febc71 Update the SDK and use media filename and caption internally. (#3375)
Doesn't render captions (other than in fallback places).
2024-10-08 11:00:58 +01: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
33c172b0f2 MockMediaProvider → MediaProviderMock. 2024-10-03 10:58:59 +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
Doug
e95fb7c27e Move the core logic in LoginScreenCoordinator into the ViewModel. (#3348) 2024-10-01 13:09:45 +01:00
Mauro
98d7654a1d Remove message pinning FF (#3318) 2024-09-30 12:32:35 +00:00
Doug
aec4e3e8ca Selecting a server that doesn't support login now fails instead of letting you continue to a failure later. (#3342)
* Fail configuration of the authentication service if the homeserver doesn't support login.

* Move the ServerSelectionCoordinator logic into the ViewModel.

- Handle the new login alert.
- Add more tests
2024-09-27 13:58:05 +01: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
Doug
0274cf3cd5 Start fixing flakey tests ❄️ (#3329)
* Wait longer on authentication flow tests.

* Move default perceptualPrecision value into the snapshot preferences.

* Delay snapshots *before* setting up the test.

* Reset the simulators on GitHub before running?

* Remove a test that is now handled by Rust.

* Fix a test that was yielding.
2024-09-26 16:09:01 +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
Doug
f52ed2f929 Upgrade Kingfisher to fix a bug that prevented GIFs from being tapped. (#3326)
* Upgrade Kingfisher to fix a bug the prevented GIFs from being tapped.

https://github.com/onevcat/Kingfisher/issues/2295

* Fix tests.
2024-09-25 13:10:02 +01:00
Doug
830f8e9db7 Fix various flakey tests. 2024-09-23 16:25:49 +01:00
Doug
44fb45bef1 Update Unit tests for Xcode 16. 2024-09-23 16:25:49 +01:00
Doug
dcf380749a A bunch of random tweaks. (#3317)
- Fix warning on single case enum.
- Remove unused subjects.
- Fix a lint warning.
- Remove unused success value.
- Fix warning about position of try await.
- Add a note about the common tracing configuration.
- Show an indicator when resolving a send failure fails.
- Make sure the whole row is clickable in the GlobalSearchScreen.
2024-09-23 13:00:40 +01:00
Doug
8ae9b48022 Push the deactivate account screen. (#3297) 2024-09-18 10:21:48 +01:00
Doug
54b126b8e0 Add support for account deactivation when not using OIDC. (#3295) 2024-09-17 20:08:35 +01:00
Doug
2a8fb365f7 Allow registration on matrix.org using a custom helper URL. (#3282) 2024-09-16 13:05:22 +01:00
Doug
700b740a48 Add a WebRegistrationScreen (not included in the flow yet). (#3281) 2024-09-16 11:03:29 +01:00
Doug
6973e8b571 Tidy-up useless directories at the end of a test run. 2024-09-11 14:54:28 +01:00
Doug
d1495f3178 Make the SessionDirectories type responsible for cleaning up data. (#3261) 2024-09-11 14:32:03 +01:00
Mauro
163e935f65 Added a pin icon (#3257) 2024-09-11 10:40:11 +00:00
Doug
a7aa116beb Require acknowledgement to send to verified users who have unsigned devices or have changed their identity. (#3215)
* Refactor HeroImage style.

* Add a screen to resolve (crypto-related) timeline item send failures.

* Refactor send failures.

* Update the SDK.
2024-09-10 09:56:11 +01:00
Stefan Ceriu
f25bd5ab31 Fix wrong durations for uploaded media
At some point Uniffi introduced [automatic conversions](35140607dc/uniffi_bindgen/src/bindings/swift/templates/DurationHelper.swift (L19)) from Rust's `Duration` to `TimeInterval`s but the original implementation for media uploading was using milliseconds. When the conversion happened there were no breaking changes and iOS kept sending millis instead of seconds, resulting in **very** wrong values.
2024-09-10 11:11:34 +03:00
Stefan Ceriu
678767d7fd Add support for showing media playback controls on the lock screen 2024-09-09 14:42:32 +03:00
Stefan Ceriu
5c9e13b200 Fixes #3147 - Remove the sliding sync proxy wait list 2024-09-09 12:41:28 +03:00
Stefan Ceriu
89eae00479 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
ef2fd1e0d2 Adopt sliding sync versions for client Restoration. 2024-08-30 14:45:54 +03:00
Doug
a3e66d3e7e Update the SDK (#3196)
* Update the SDK.

* Fix API breaks on send failures and propagate the new type.

* Handle new SDK ShieldState.

* Set up the ClientBuilder's `cachePath` option.

* Delete the cacheDirectory during logout/clearCache.

* Add unit tests for RestorationToken decoding and SessionDirectories generation.
2024-08-27 11:06:26 +01:00
Mauro
87f8c2eaaf TimelineKind refactor (#3193) 2024-08-22 18:33:21 +00:00
Mauro
bbb462bd83 Pinned Events Timeline actions and differentiation (#3182) 2024-08-22 17:35:44 +02:00
Doug
6a44d79b6e Use native video call picture in picture! (#3190)
* Use native video call picture in picture!

* Handle isSupported, isPossible and web view errors.

* Use new canEnterPip method.

* Hide a room's Call button when already joined to the call.

* Tweak feature flag description.

* PR comments.
2024-08-21 17:48:57 +01:00
Stefan Ceriu
34eb596c1a Introduce a new RoomProxyType and treat rooms differently based on their membership state 2024-08-21 12:24:20 +03:00
Doug
1d29d4de8a 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
Doug
2c51f22109 Remove encryption authenticity feature flag. (#3180) 2024-08-19 09:49:10 +01:00
Doug
bcf417cabd Navigation support for upcoming Element Call Picture in Picture mode. (#3174) 2024-08-16 11:25:36 +01:00
Stefan Ceriu
40bf8a460d Automatically try reloading failed images on network changes (#3170)
* Add the networkMonitor to the NSE and delete the old MockMediaLoader

* Generate a MediaLoaderMock through AutoMockable and use it in the MediaProviderTests

* Implement an ImageProvider mechanism that automatically tries reloading images when connectivity is established again and use it for LoadableImages

* Merge the ImageProvider protocol back into the MediaProvider

* Address PR review comments

* Provide a default sdk client request configuration

* Address tasks not automatically cancelling themselves when views get deallocated
2024-08-15 18:20:19 +03:00
Mauro
11072ce574 RoomScreenViewModel refactor part 2 (#3169) 2024-08-14 18:03:46 +02:00
Mauro
803c61e879 PinnedBanner is now managed by the RoomScreenViewModel (#3163) 2024-08-14 12:38:10 +02:00
Mauro
ecddcfcd16 RoomScreenViewModel is now TimelineViewModel (#3157)
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2024-08-13 13:36:40 +02:00
Doug
8d49a237b1 Remove unused protocol. 2024-08-12 12:23:29 +01:00
Mauro
293c5b234e Navigate to the Pinned events timeline (#3139) 2024-08-08 18:29:39 +02:00
Mauro
c23851bbe6 Pinned events banner goes backwards (#3128) 2024-08-07 14:01:01 +00:00
Mauro
07f2242ed0 Pinned events banner loading state (#3118) 2024-08-06 15:46:56 +02:00
Valere
6b8d440be6 Show Encryption Authenticity warnings on messages in the timeline. (#3051)
* Initial implementation.

* Add developer option for showing timeline item authenticity.

* Refactor code to use new SendInfo.Status.

---------

Co-authored-by: Doug <douglase@element.io>
2024-08-05 11:15:38 +00:00
Doug
acc916c5cf Fix the restoration of a SSS session. (#3081) 2024-07-24 10:55:40 +01:00
Doug
17a86a2066 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
Stefan Ceriu
536d6a1567 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
Mauro
4de7a88848 Restore Mentions in plain text mode (#3018) 2024-07-09 13:02:46 +02:00
Doug
79734ad4a8 Make sure the BugReportScreen allows the user to retry if sending fails. (#3012) 2024-07-08 14:32:36 +01:00
Stefan Ceriu
bc7c76cf3a Use local room list sorting from Rust. (#2978)
* Switch to the new local room list sorting API

* Get rid of the RoomSummary enum, replace it by the inner RoomSummaryDetails

* And finally, rename RoomSummaryDetails to RoomSummary

* Fix a bunch of warnings

* Small tidy up post rebase/review.

- Remove unused invalidated property.
- Rename some RoomSummary instances to summary instead of details.
- Fix tests with missing roomListItem's.

* Update snapshots

---------

Co-authored-by: Doug <douglase@element.io>
2024-07-05 10:10:53 +01:00